我在演示者中有一个UserControl属性:
public UserControl Control { get; set; }
XAML代码:
<ContentControl Content="{Binding Control}"/>
当我运行应用程序时,我收到此错误:
System.Windows.Data错误:40:BindingExpression路径错误: 在'对象'''MainPresentet'上找不到“演示者”属性 (的HashCode = 24706823)”。 BindingExpression:Path = Presenters; DataItem ='MainPresenter'(HashCode = 24706823);目标元素是 'ItemsControl'(Name =''); target属性是'ItemSource'(类型 '的IEnumerable')
我试图将属性更改为IEnumerable并使用ItemsControl并且我得到了相同的错误。
我不知道UserControl的名称,因为我在运行时从其他dll获取了他
答案 0 :(得分:1)
您的错误非常明确:
System.Windows.Data错误:40:BindingExpression路径错误:'对象'''MainPresentet'(HashCode = 24706823)'上找不到'Presenters'属性。 BindingExpression:Path = Presenters; DataItem ='MainPresenter'(HashCode = 24706823); target元素是'ItemsControl'(Name =''); target属性是'ItemSource'(类型'IEnumerable')
这意味着代码中的某个位置,您尝试将数据绑定到名为Presenters
的属性,但您尝试过的DataContext
实际上设置为{{1}类型的对象这个对象 not 在其中声明了一个公共MainPresenter
属性。此Presenters
设置在Binding
的{{1}}属性或派生类上,如ItemSource
。
因此,此错误与您显示的代码无关,您需要在代码中搜索ItemsControl
ListBox
并修复Presenters
。