1

如果我想使用 XAML 绑定到父数据上下文数据,我可以编写以下内容:

<UserControl>
<RadGridView x:Name="Parentgrid">

  <RadGridView.RowDetailsTemplate>
         <DataTemplate>
               <RadGridView x:Name="childGrid" ItemsSource="{Binding DataContext.Result, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"  
                                     />
  </RadGridView.RowDetailsTemplate>

</RadGridView>
</UserControl>

但是考虑到代码在不同的类中,我如何使用代码来做到这一点,比如说附加属性。所以我可以访问发送者和参数,如下所示:

 parentGrid.LoadingRowDetails += (sender, args) =>
                    {
                        RadGridView gridView = args.DetailsElement.FindName("childGrid") as RadGridView;

                        if (gridView != default(RadGridView))
                        {
                            gridView = //Should be able to access DataContext.Result
                        }


                    };
4

1 回答 1

0

由于您正在寻找特定类型,因此您可以使用 FindVisualParent 之类的方法从此处遍历可视化树:如何按名称或类型查找 WPF 控件?

至此,您基本上完成了绑定的RelativeSource 部分的等效操作,并且可以访问返回对象上的DataContext。

于 2013-05-15T12:56:13.333 回答