我可以从其他模型继承MVVM模型吗?

时间:2012-01-02 10:53:08

标签: wpf data-binding mvvm

我有一个包含不同属性的ProductViewModel类。 然后我有一个继承自ProducViewModel类的ProductDetailsViewModel类。我这样做的原因是为了获得正确的绑定环境并避免重复以前视图中的属性。

我被允许这样做,或者每个ViewModel应该被清楚地隔离?

通过代码,我可以从ProductDetailsViewModel视图访问ProductViewModel类的属性,但是当我将ProductDetailView的datacontext设置为ProducDetailsViewModel类并绑定在继承类中定义的实例的URI时,绑定似乎不会发生。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您也可以这样做,但我认为最好将它们分开并使用依赖注入。

您可以为ProductViewModel创建和界面并实现它,然后将其注入ProductDetailsViewModel。

MVVM + WPF + DI

MSDN DI

答案 1 :(得分:1)

是的,这很好,我在WPF项目中一直这样做,所以它应该可行。一些建议:

  • 调试应用程序时是否可以检查输出窗口?是否有任何绑定错误表明错误类型的xaml绑定?
  • 您是否在xaml中使用绑定到特定类型的任何DataTemplates,例如ProductViewModel不是ProductDetailsViewModel?
  • 基本类型(ProductViewModel)是否实现了INotifyPropertyChanged?
  • ProductViewModel和ProductSetailsViewModel中的所有属性是否都使用直接键入的字符串属性名称来引发PropertyChanged事件?

致以最诚挚的问候,