0

我正在编写一个库,我们的主要 WPF GUI 项目在运行时使用反射静态加载。我的类库尝试加载 ViewModel 以在 WPF GUI 中显示其关联视图。这似乎不起作用。这是因为 WPF 无法访问我在库中声明的绑定吗?我在库中有一个名为 CommonResources.resx 的文件,如下所示:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
                    xmlns:vm="clr-namespace:Plugin.ViewModel"
                    xmlns:v="clr-namespace:Plugin.View"
                     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
                     mc:Ignorable="d">
    <vm:ViewModelLocator x:Key="Locator" d:IsDataSource="True" />
    <DataTemplate DataType="{x:Type vm:MyViewModel}">
        <v:MyView/>
    </DataTemplate>
</ResourceDictionary>

当主 GUI 尝试显示 MyViewModel 时,如何让 WPF 魔法发生?

4

1 回答 1

0

抱歉,不是那么精确,因为您显示的代码并未反映您为加载插件所做的提升。它并不能真正代表您的问题,但总的来说......

您是否考虑过查看MEF 托管的可扩展性框架?有很多文章如何构建 MVVM 应用程序以在运行时使用 viewmodel 加载视图。也非常适合 viewmodel 定位器模式。

有一个不错的(但旧的)视频系列来自 mike taulty,关于如何将 mef 与 silverlight 一起使用。由于 Silverlight 是 WPF/XAML 的子集,即使技术略有不同,这些概念仍然适用,因此您可能需要适应。

但当然值得一看,因为它让您了解如何构建插件架构以及 mef 的工作原理。

https://channel9.msdn.com/Blogs/mtaulty/MEF--Silverlight-4-Beta-Part-1-Introduction (每个视频都有指向该系列下一个视频的链接)

高温高压

于 2016-03-01T09:26:51.340 回答