【问题标题】:How to bind a RadGridView in RowDetailsTemplate of another RadGridView如何在另一个 RadGridView 的 RowDetailsTemplate 中绑定一个 RadGridView
【发布时间】:2019-06-11 05:35:19
【问题描述】:

RadGridView 绑定到一个列表(例如,Samples)。在 RowDetailsTemplate 中,我想显示另一个 RadGridView,它将显示来自另一个列表(例如,分析)的相关记录。

主 RadGridView 绑定在 Code behind 为:

GrdSamples.ItemsSource=SamplesViewModel.GetAll();

如何以相同的方式在 RowDetailsTemplate (GrdAnalysis) 中绑定 RadGridView?在哪个事件上我会得到密钥 ID,这样我就可以使用类似的东西:

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>

【问题讨论】:

    标签: wpf telerik wpf-controls telerik-grid


    【解决方案1】:

    您可以处理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()方法返回的对象类型。

    【讨论】:

      猜你喜欢
      • 2018-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-22
      • 2012-11-09
      • 1970-01-01
      相关资源
      最近更新 更多