我有一个控件: DailyHours。那里有我创建的自定义TimeEdit控件的集合。每个控件应该绑定到DailyHours视图模型类。相反,它会尝试在TimeEdit控件中查找我绑定的值。WPF MVVM控件错误地共享ViewModel
一个TimeEdit对照结合的一个例子:
<bc:TimeEdit Time="{Binding CurrentOperatingHours.MondayClose}" ></bc:TimeEdit>
的TimeEdit控制具有用于小时和分钟被绑定到小时和分钟属性其自身的内部值。出于这个原因,TimeEdit控件的DataContext本身就是。
public TimeEdit()
{
InitializeComponent();
this.DataContext = this;
}
但是,这会导致DailyHours控件错误地绑定时间值。它在TimeEdit控件中查找CurrentOperatingHours属性,而不是其自己的视图模型。
如何让我的TimeEdit控件与内部值正确绑定,而不会干扰其父容器上的绑定?
当您添加的DataContext的路径这会工作:{结合DataContext.CurrentOperatingHours.MondayClose ... – blindmeis
其实控制在DataContext被绑定到控件本身,所以要找到在视图模型属性CurrentOperatingHours你需要使用RelativeResource 。 – ethicallogics
您的示例绑定到窗口不是用户控件,如果您尝试您的代码,您将看到像这样的事情Binding.Error属性CurrentOperatingHours找不到对象typeof窗口 – blindmeis