2016-02-26 52 views
0

我正在寫一個庫,我們的主要WPF GUI項目在運行時使用反射靜態加載。我的類庫嘗試加載ViewModel,目的是在WPF GUI中顯示其相關視圖。這似乎並不奏效。這是因爲WPF無法訪問我在庫中聲明的綁定?我有一個名爲CommonResources.resx在它看起來像這樣的庫文件:數據綁定ViewModel查看靜態加載程序集內

<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的魔力?

回答

0

對不起,不是很精確,因爲你顯示的代碼並不反映你正在做的加載你插件的提升。它不是真正代表你的問題,但一般...

你有沒有考慮過看MEF - Managed Extensibility Framework? 有很多文章介紹如何構建MVVM應用程序,以便在運行時使用viewmodel加載視圖。該視圖與視圖模型定位器模式也非常吻合。

有一個很好的(但老)視頻系列形式邁克taulty關於如何使用mef silverlight。由於Silverlight是WPF/XAML的子集,即使技術稍有不同,這些概念仍然適用,因此您可能需要適應。

但值得一看,因爲它給你一個想法如何構建一個插件架構以及如何工作。

https://channel9.msdn.com/Blogs/mtaulty/MEF--Silverlight-4-Beta-Part-1-Introduction (每部影片都有一個鏈接到它在系列的下)

HTH