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
ничего не показывает Что я делаю неправильно?