RadGridView привязан к списку (например, Samples). В RowDetailsTemplate я хочу показать другой RadGridView, который будет отображать связанные записи из другого списка (например, Analysis).
Основной RadGridView связан с кодом как:
GrdSamples.ItemsSource=SamplesViewModel.GetAll();
Как я могу таким же образом связать RadGridView в RowDetailsTemplate (GrdAnalysis)? И в каком событии я получу идентификатор ключа, чтобы я мог использовать что-то вроде:
var SampleID = ?
GrdAnalysis.ItemsSource=AnalysisViewModel.Get(SampleID);
Вот XAML,
<telerik:RadGridView x:Name = "GrdSamples" AutoGenerateColumns = "False">
<telerik:RadGridView.Columns>...</telerik:RadGridView.Columns>
<telerik:RadGridView.RowDetailsTemplate>
<DataTemplate>
<telerik:RadGridView x:Name = "GrdAnalysis"
AutoGenerateColumns = "False">
</DataTemplate>
</telerik:RadGridView.RowDetailsTemplate>
</telerik:RadGridView>
Вы можете обработать событие Loaded
:
private void OnLoaded(object sender, RoutedEventArgs e)
{
RadGridView inner = (RadGridView)sender;
var sample = inner.DataContext as Sample;
if (sample != null)
{
var SampleID = sample.Id;
inner.ItemsSource = AnalysisViewModel.Get(SampleID);
}
}
XAML:
<DataTemplate>
<telerik:RadGridView x:Name = "GrdAnalysis" Loaded = "OnLoaded" AutoGenerateColumns = "False">
</DataTemplate>
Sample
— это тип объектов, возвращаемых методом SamplesViewModel.GetAll()
в приведенном выше примере кода.