c# - 如何使用 MVVM 将 UserControl 从插件传递到我的主窗口?

标签 c# plugins mvvm view user-controls

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

我的 MainViewModel 有这个

public object Content

我的 PluginViewModel 会这样做

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

最佳答案

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

关于c# - 如何使用 MVVM 将 UserControl 从插件传递到我的主窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26657639/

相关文章:

javascript - 从代码隐藏中调用 chrome 和 Opera 的 Window.Close() 事件

java - 将 Java 项目从 Eclipse 导出为带有附加引用 jar 的 JAR

c# - MVC、MVP 和 MVVM 设计模式在编码 c# 方面有什么区别

c# - 使用具有行+列坐标的值集合动态填充数据网格

c# - 混淆窗口内置身份验证(web.config)

c# - WCF:CustomBinding 混淆端点

c# - 创建自定义配置

c# - 如何使用 CRM Dynamics 2013/2015 中的插件更新 CRM 中的实体和相关实体

c# - 用 C# 编写插件或插件框架

c# - 制作 View 模型错误