在我的MainWindow
我有这个:
<Window.DataContext>
<viewModel:ActiveRecord />
</Window.DataContext>
在我的UserControl
我有这个:
<UserControl.DataContext>
<search:CustomerSearch />
</UserControl.DataContext>
在我添加这个'本地'绑定之前,我会在我的UserControl
中引用'模块'绑定,如下所示:
var vm = this.DataContext as ViewModel.ActiveRecord;
但是因为我想引用2个不同的绑定,它似乎不再起作用了。我的意思是我用ActiveRecord
填充值,但当我导航到另一个表单时,这些值为空。
我认为我需要做的是访问Mainwindow's
DataContext
,如下所示:
var vm = MainWindow.DataContext as ViewModel.ActiveRecord;
但当然DataContext
不属于MainWindow
我该怎么做?
答案 0 :(得分:0)
在用户控件中,您可以为用户控件上的Textblock设置相对绑定,如下所示:
<TextBlock Text="{Binding Path=DataContext.PropertyYouWant, RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Window}}}" />
在我看来,你似乎是通过错误的方法来解决这个问题。用户控件从其父级(即窗口)继承其数据上下文是正常的。是否可以为活动记录提供对客户搜索的访问权限?