gpt4 book ai didi

c# - ViewModel 进入 View

转载 作者:行者123 更新时间:2023-12-03 10:26:52 29 4
gpt4 key购买 nike

目前我正在使用 WPF 学习 C#。我的主要方法是尽我所能使用 MVVM 模式,但现在我有点困惑。

在我所有 View 的应用程序中,我有一个 View 模型:

private DruckviewViewModel ViewModel { get; set; }

public Druckview()
{
ViewModel = new DruckviewViewModel();
DataContext = ViewModel;
InitializeComponent();
}

这是将 ViewModel 实现到 View 中的建议方法还是有更好的方法来做到这一点?

最佳答案

MVVM 并不意味着没有代码隐藏。

MVVM 是关注点分离的模式。它有助于将应用程序的架构分为三个部分(按出现顺序):
Model View ViewModel
在哪里 Model是包含您的业务逻辑的类。
View表示您的 View 类,它仅包含与 View 相关的逻辑(XAMLcode-behind)除非代码仅包含 View 的逻辑,否则可以有代码隐藏(例如,在按钮单击事件处理程序中,您将一个文本框的颜色复制到另一个文本框,这当然可以在 XAML 中完成,但从 MVVM 的角度来看并不重要)
ViewModel表示 View 的行为,不引用 View .
请注意,例如,我认为此属性将违反 MVVM模式,因为 Visibility是 View 相关类型

public Visibility MyVisibility { get; set; }

所以 MVVM 各部分之间的依赖关系像这样:
Model什么都不知道 ViewModel只知道 Model View了解 ViewModel
View ---> View 模型 ---> 模型

我认为使用 MVVM有多紧并不重要 View绑定(bind)到 ViewModel .它已经是有界的,因为您使用 ViewModel的属性和命令。

不紧密绑定(bind)(例如使用接口(interface)作为 ViewModel )将使您有可能在没有真实 ViewModel 的情况下测试 View例如,通过创建自己的“设计时” View 模型。

如果您当前的解决方案有效并满足您的需求,并且您只是从 MVVM 开始和 WPF然后继续,直到满足完全隔离 View 的需要来自 ViewModel的类型

关于c# - ViewModel 进入 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39396612/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com