0

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

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

MEF 框架应用程序的主窗口 XAML 绑定了模块的用户控件和功能区。通过功能区,它还将功能区的标记依赖属性链接到用户控件。这样,实际的模块功能区可以访问 UserControl(用于确定在网格中选择了哪些元素)。

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

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

正如我所提到的,标签已正确解析为模块的 UserControl ......但随后我在用户名上收到绑定错误(未找到属性)。

以下是我在 MEF 框架应用程序的主窗口中绑定 Tag 属性的方法:

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

顺便说一句,我无法使用 Prism 有点手足无措……

4

0 回答 0