【发布时间】:2011-02-03 09:32:13
【问题描述】:
我有一个 WPF MVVM 应用程序。我的一个视图有一个用户控件,需要为每个安装进行自定义。它基本上是客户安装的草图,带有一些标签等绑定到视图模型。
现在我的问题是这个用户控件在每个站点/安装上都不同。一种方法是使用 xaml 阅读器从文件/数据库运行时加载 xaml。这可行,但由于我的视图模型是通用的,我必须绑定到方法而不是属性,并且我无法使用 objectdataprovider 加载 xaml。
目前我正在尝试查看是否可以使用 MEF,以便我可以将用户控件创建为插件。所以我现在正在寻找的是:
- 如何使用视图/视图模型定义用户控件,以导出 MEF 合同
- 我的父视图(在我的 wpf 应用程序中)如何加载导入的用户控件
任何提示都值得赞赏,或者也许有人有不同的方法?
【问题讨论】:
-
我不明白这条评论:“因为我的视图模型是通用的,所以我必须绑定到方法而不是属性。”什么意思?
-
假设一个视图绑定到 xCounter。不同的视图绑定到 xCounter 和 yCounter。这些应该以 x 和 y 作为参数绑定到 getCounter(),这样视图模型就不必仅仅因为新的绑定而改变..
-
在我看来,处理这种差异应该是 ViewModel 的责任,而不是视图的责任。也许您可以发布一些示例 Xaml 和代码来演示?