如果我想使用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>
但是我如何使用代码考虑到代码在不同的类中,让我们说附加属性。所以我能够访问发件人和args,如下所示:
parentGrid.LoadingRowDetails += (sender, args) =>
{
RadGridView gridView = args.DetailsElement.FindName("childGrid") as RadGridView;
if (gridView != default(RadGridView))
{
gridView = //Should be able to access DataContext.Result
}
};
答案 0 :(得分:0)
由于您正在寻找特定类型,因此您可以使用FindVisualParent等方法在此处浏览可视树:How can I find WPF controls by name or type?
此时你基本上完成了绑定的RelativeSource部分,并且可以访问返回对象的DataContext。