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

时间:2014-10-30 15:54:50

标签: c# plugins mvvm view user-controls

我有一个基于插件的应用程序,我使用Mono.Addin发现插件。每个插件都有自己的View和ViewModel,我不确定将View传递给MainView的最佳方法。目前我的MainView绑定到MainViewModel上的对象类型,但这需要我在我的插件ViewModel中使用UI特定的逻辑。我这样做并不是很自在,但却想不到更好的方法。

我的MainViewModel有这个

public object Content

我的PluginViewModel执行此操作

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

1 个答案:

答案 0 :(得分:1)

如果您正在使用MVVM,那么从视图模型创建视图的常用方法是通过数据模板化,为了使其工作,需要将视图和数据模板合并到应用程序的全局ResourceDirectory中。有another answer here表明使用MEF插件架构可以做到这一点,但要适应其他人不应该太难。