即时通讯使用MVVMLight Toolkit for WPF和C#。 有一个带有窗口(Shell)的WPF应用程序和一个控件是(UI)的程序集。 ViewModels位于第三个DLL(BIZ)中。MVVMLight DataTemplates in assembly ressource dictionary
窗口中显示的唯一东西是一个名为“ShellView”的控件,它是主UI部分。我这样做是为了能够在不同的窗口中重用大部分应用程序。
目前我在“Shell”App.config中执行view和viewmodel之间的所有绑定。
从来就引用:
的组件名称空间
xmlns:views="clr-namespace:Application.UI;assembly=Application.UI"
xmlns:vm="clr-namespace:Application.BIZ;assembly=Application.BIZ"
视图模型定位器
<vm:ViewModelLocator xmlns:vm="clr-namespace:Application.BIZ;assembly=Application.BIZ" x:Key="Locator" d:IsDataSource="True" />
和所使用的的DataTemplates
<DataTemplate
DataType="{x:Type vm:ShellVM}">
<views:ShellView />
因此,如果我将内容控件的内容绑定到一个“ViewModelBase”类,视图会自动显示 - 一切正常。
现在我试图将数据模板的定义移动到UI组件中,并在窗口应用程序中引用它。因此,所有模板和绑定都是在UI组件中完成的,并且该窗口只引用所有程序集并显示“ShellView”。
我的问题是: 这是可能的,我该如何引用App.xaml中的程序集?目前即时通讯许多xaml解析异常。
预先感谢您
数据模板未在主应用程序窗口xaml中使用。只有在控制库中,你的解决方案也能工作吗?我通常只将它们用于View-ViewModel绑定: 数据模板完成其余的任务 –
pwoestmann
@pwoestmann您可以在任何项目中使用app.xaml。但是在运行期间只使用exe项目中的一个。所以如果你想坚持这个解决方案,你将不得不复制这个资源部分。所以在你想要消费你的数据模型的项目中,所以设计者不会抱怨,而且一个在主项目中,所以当它运行时知道在哪里找到它们。 – adminSoftDK