绑定到UserControl属性

时间:2014-09-18 07:25:56

标签: c# wpf user-controls

我在演示者中有一个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获取了他

1 个答案:

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