如何将控件的DataContext绑定到WPF中其内容的DataContext?
我试过这个:如何将控件的DataContext绑定到WPF中其内容的DataContext?,wpf,data-binding,datacontext,Wpf,Data Binding,Datacontext,我试过这个: Binding binding = new Binding("Content.DataContext"); BindingOperations.SetBinding(tab, DataContextProperty, binding); 它不起作用了。我不知道为什么。可能有更好的方法来实现您在XAML中使用绑定的目的,但是如果您仍然使用代码隐藏,您可以尝试以下方法: FrameworkElement fe = tab.Content as FrameworkElement if
Binding binding = new Binding("Content.DataContext");
BindingOperations.SetBinding(tab, DataContextProperty, binding);
它不起作用了。我不知道为什么。可能有更好的方法来实现您在XAML中使用绑定的目的,但是如果您仍然使用代码隐藏,您可以尝试以下方法:
FrameworkElement fe = tab.Content as FrameworkElement
if (fe != null)
tab.DataContext = fe.DataContext;
没有任何绑定。您尚未指定绑定的源。因此,它使用
选项卡
元素的本地数据上下文。由于选项卡
元素还没有DataContext(这是您试图设置的内容),更不用说路径Content.DataContext
有意义的内容了,这是行不通的
相反,请使用以下内容:
Binding binding = new Binding("Content.DataContext")
{
RelativeSource = RelativeSource.Self
};
BindingOperations.SetBinding(tab, DataContextProperty, binding);
(根据您的具体需求,您可能还需要研究使用Binding.Source而不是Binding.RelativeSource。)
RelativeSource设置指定绑定到与绑定目标相同的元素,而不是本地DataContext——因此,控件的DataContext现在根据需要绑定到同一控件内容的DataContext。您是否尝试过反向绑定?(通过xaml)?不会编译。内容被声明为类型对象,对象没有DataContext属性。