我有usercontrol,我试图将DataContext
设置如下:
<UserControl.DataContext>
<Binding ElementName="dataGrid" Path="MyViewModel">
</Binding>
</UserControl.DataContext>
此处dataGrid
是儿童DataGrid
控件,MyViewModel
是我的ViewModel
类。目前它在运行时发出以下错误:
Cannot find source for binding with reference 'ElementName=dataGrid'. BindingExpression:Path=MyViewModel; DataItem=null; target element is 'UserControl1' (Name=''); target property is 'DataContext' (type 'Object')
有人可以帮助解决这里的问题吗?
答案 0 :(得分:1)
问题很可能是由于名称范围限制造成的。 ElementName绑定仅在定义的边界内正常工作。这个特定错误说它无法找到命名元素“dataGrid”。你能展示更多周围的XAML吗?
答案 1 :(得分:0)
MyViewModel是否设置在dataGrid的DataContext上?
如果是这样,在Path to DataContext中更改MyViewModel,你很高兴... 如果没有,请将MyViewModel类设置为DataContext并从Binding中删除ElementName,它也可以正常工作;)
答案 2 :(得分:0)
此绑定尝试访问dataGrid.MyViewModel
,但MyViewModel
不是DataGrid
的属性...您应该执行类似的操作:
<Binding ElementName="dataGrid" Path="DataContext.MyViewModel">