如何使用MVVM将UserControl从插件传递到主窗口

本文关键字:窗口 插件 何使用 MVVM UserControl | 更新日期: 2023-09-27 18:28:39

我有一个基于插件的应用程序,我正在使用Mono.Adin发现插件。每个插件都有自己的View和ViewModel,我不确定将View传递到MainView的最佳方法。目前,我的MainView绑定到MainViewModel上的对象类型,但这需要我在插件ViewModel中具有特定于UI的逻辑。我做这件事不太舒服,但想不出更好的办法了。

我的MainViewModel有这个

public object Content

我的PluginViewModel做这个

this.MainViewModel.Content = ViewLocator.Current.ResolveView(this);

如何使用MVVM将UserControl从插件传递到主窗口

如果您使用的是MVVM,那么从视图模型创建视图的常用方法是通过数据模板,为了实现这一点,需要将视图和数据模板合并到应用程序的全局ResourceDirectory中。这里有另一个答案表明,使用MEF插件架构可以做到这一点,但适应其他插件应该不会太难。