【问题标题】:C# extending a class in MVVM design pattern (WPF)C# 在 MVVM 设计模式 (WPF) 中扩展类
【发布时间】:2013-02-02 04:38:56
【问题描述】:

我有一个包含 GridView 对象和 View 代表的 ViewModel 的视图。现在,我想覆盖该 ViewModel 中的控件,以便保持相同的 GUI 但具有不同的业务逻辑(即包含在 ViewModel 中)。这样做的正确方法是什么?

我认为它不像扩展 ViewModel 那样简单,因为它的 GUI 在 View 中表示存在问题(它有一个 XAML 组件)。

有什么想法吗?

谢谢。

编辑:修正错字

【问题讨论】:

  • ViewModel 中的控件?那是有问题的。澄清你的问题。
  • 你的问题难以理解
  • 抱歉,我打错了几个字。那是固定的。此外,MVVM 与 MVC 几乎相同。因此 View Model 通常被视为与 Controller 的直接 1-1 映射。

标签: c# wpf mvvm


【解决方案1】:

我倾向于创建一个基础 ViewModel 类,其中包含标准 UI 和控制逻辑。

然后我将我想要单独控制的任何功能/子设置为可覆盖。但我用默认代码填充它们,例如标准表单状态(编辑/添加/删除)代码。当然,任何我想强制被覆盖的都设置为必须覆盖。

然后,我创建一个基于个人视图的 ViewModel,从基本 ViewModel 类继承,覆盖我需要的方法,并将这个个人 ViewModel 设置为视图的 DataContext。

您可以使用此方法切换您喜欢的任何 ViewModel,只要它们都继承自您的基本 ViewModel 类。

我希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-23
    • 2014-08-31
    相关资源
    最近更新 更多