在WPF中为UserControl设置Datacontext时出错

时间:2010-01-19 15:49:17

标签: c# wpf data-binding binding datagrid

我有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')

有人可以帮助解决这里的问题吗?

3 个答案:

答案 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">