Tag Dependency Property的祖先绑定失败,找不到Property

时间:2012-10-05 17:33:11

标签: wpf xaml data-binding dependency-properties

我正在构建一个基于MEF的模块加载框架......基本布局是主MEF应用程序加载模块和数据绑定到各种导出对象,包括模块的功能区和模块主视图(作为UserControl)。

在模块中,Ribbon在一个XAML文件中定义为ResourceDictionary,主视图(模块的窗口内容)在单独的XAML文件中定义为UserControl。

MEF Framework App的主窗口XAML绑定模块的usercontrol和功能区。使用功能区,它还将功能区的Tag依赖项属性链接到UserControl。这样,实际的模块功能区可以访问UserControl(用于确定在网格中选择哪些元素)。

这一切都很好......标签与UserControl正确关联。我遇到的问题是在模块的功能区中。我尝试绑定到UserControl中的子元素,绑定失败。以下是模块的功能区绑定失败的示例:

<ribbon:RibbonButton
   Command=”blah”
   Label={“Binding RelativeSource={RelativeSource AncestorType=ribbon:Ribbon},
   Path=Tag.Username.Text}”/>

正如我所提到的,Tag正确解析为模块的UserControl ...但是我在Username上找到了绑定错误(找不到属性)。

以下是我如何在MEF Framework App的主窗口中绑定Tag属性:

<ribbon:Ribbon x:Name=”Ribbon”
   DataContext=”blah”,
   Tag=”{Binding ElementName=RibbonWindow,              
   Path=DataContext.ModuleList.CurrentItem.View}”> 

顺便说一下,我不能使用Prism ......

0 个答案:

没有答案