Есть DataGrid и в его RowDetailsTemplate еще один DataGrid
<DataGrid
AutoGenerateColumns="False"
ItemsSource="{Binding VerstatOperators}"
SelectedItem="{Binding SelectedVerstatOperator}">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding FullName}" Header="ПИБ" />
</DataGrid.Columns>
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<DataGrid
AutoGenerateColumns="False"
ItemsSource="{Binding Marks}"
SelectedItem="{Binding SelectedMark}">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Time}" Header="Время, мин" />
</DataGrid.Columns>
</DataGrid>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
</DataGrid>
Его ViewModel
private IEnumerable<VerstatOperator> verstatOperators;
public IEnumerable<VerstatOperator> VerstatOperators
{
get { return verstatOperators; }
set
{
verstatOperators = value;
OnPropertyChanged("VerstatOperators");
}
}
private VerstatOperator selectedVerstatOperator;
public VerstatOperator SelectedVerstatOperator
{
get { return selectedVerstatOperator; }
set
{
selectedVerstatOperator = value;
try
{
Marks = db.Marks.Where(x =>
x.IdVerstatOperator == SelectedVerstatOperator.IdVerstatOperator).ToList();
}
catch { }
OnPropertyChanged("SelectedVerstatOperator");
}
}
private List<Mark> marks;
public List<Mark> Marks
{
get { return marks; }
set
{
marks = value;
OnPropertyChanged("Marks");
}
}
private Mark selectedMark;
public Mark SelectedMark
{
get { return selectedMark; }
set
{
selectedMark = value;
OnPropertyChanged("SelectedMark");
}
}
Все работает кроме SelectedMark, выбирая любую строку из грида в деталях он просто не содержит объекта и всегда остаеться null.
Я так понимаю из-за вложенности этот грид имеет какое-то ограничение, как все-таки отлавливать выбранный элемент по MVVM канону
Решил проблему таким способом
SelectedItem="{Binding Path=DataContext.SelectedMark, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}"
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости