odd*_*ity 5 wpf resources mef resourcedictionary
我有一个导入MEF组件,它在导入向导打开时动态加载.一旦用户选择了她想要处理的导入类型,就会将对导入向导对话框的控制传递给所选的导入组件.当然,导入组件需要为向导对话框提供资源(例如DataTemplate
s).目前,这是通过DataTemplateSelector
导入组件提供的s 实现的.他们访问ResourceDictionary
导入组件程序集的本地.
但是你可以想象,这很乏味:我必须为每个DataTemplate
提供的代码添加代码,WPF不会DataTemplate
根据ViewModel
显示的类型自动使用右边的代码.
以前有人解决了这个问题吗?你们是如何在插件环境中提供资源的?
感谢您提前提供的任何帮助.
最好的祝福
Dan*_*ant 13
我忘记了我发现这个小技巧的地方,但是你可以做的一件事是在组成外部程序集时动态导入资源字典.
在每个包含资源的程序集中,您可以通过后面的代码导出一个或多个ResourceDictionary对象并注释如下:
[Export(typeof(ResourceDictionary))]
public partial class Resources : ResourceDictionary
{
public Resources()
{
InitializeComponent();
}
}
Run Code Online (Sandbox Code Playgroud)
现在你需要一个解析an的组件[ImportMany] IEnumerable<ResourceDictionary> resourceDictionaries
并执行以下操作:
//Merge exported resource dictionaries from all composed sources into the application
foreach (var resourceDictionary in resourceDictionaries)
{
Application.Current.Resources.MergedDictionaries.Add(resourceDictionary);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2511 次 |
最近记录: |