WPF MVVMLight: обновление DataGrid на основе SelectedItem другого DataGrid

РазработкаWPF приложение, использующееMVVMLight.

мойModel состоит изAttribute класс иDataSet класс сObservableCollection<Attribute> свойство по имениAttributes.

мойMainViewModel имеетDataSet имущество.

В моемMainView который имеет этоDataContext установлен вMainViewModel У меня дваDataGrids, Один имеет этоItemsSource привязан кDataSet.Attributes который отлично работает:

<DataGrid CanUserAddRows="false" AutoGenerateColumns="false" ItemsSource="{Binding DataSet.Attributes}">
//some DataGrid columns here

Я хочу второйDataGrid отображать некоторые дополнительные свойства на основеSelectedItem первой DataGrid, поэтому я сделал следующее:

1) добавилSelectedAttribute свойство типаAttribute в моемMainViewModel:

private Attribute selectedAttribute;
public Attribute SelectedAttribute
{
    get { return selectedAttribute; }
    set
    {
        if (selectedAttribute == value)
        {
            return;
        }
        selectedAttribute = value;
        RaisePropertyChanged(() => SelectedAttribute);
    }
}

2) модифицировал мой первыйDataGrid связать этоSelectedItem вSelectedAttribute:

<DataGrid CanUserAddRows="false" AutoGenerateColumns="false" ItemsSource="{Binding DataSet.Attributes}" SelectedItem="{Binding SelectedAttribute}">

3)Обновление 1 установитьItemsSource второгоDataGrid вSelectedAttribute и создал столбец, связанный сCategories собственностьюSelectedAttribute который являетсяObservableCollection<string>:

<DataGrid SelectionMode="Single" EnableColumnVirtualization="True" AutoGenerateColumns="false" ItemsSource="{Binding Main.SelectedAttribute}">
    <DataGrid.Columns>
        <DataGridTextColumn Header="categories" Width="auto" Binding="{Binding Main.SelectedAttribute.Categories}"  />                      
    </DataGrid.Columns>
</DataGrid>

4) по моемуMainViewModel, один разDataSet.Attributes заполнен, я установилSelectedAttribute к первомуAttribute в коллекции (просто в качестве теста):

SelectedAttribute = DataSet.Attributes[0];

Как только я запускаю это, первыйDataGrid загружается нормально, но ни один элемент не выбран и второйDataGrid ничего не показывает Что я делаю неправильно?

Ответы на вопрос(1)

Ваш ответ на вопрос