gpt4 book ai didi

wpf - 在 MVVM 中,ViewModel 响应 View 中用户操作的最佳方式是什么?

转载 作者:行者123 更新时间:2023-12-02 20:32:57 25 4
gpt4 key购买 nike

我理解在 MVVM 中:

  • View 知道 ViewModel
  • ViewModel 了解模型
  • 但它不能向上工作,因此 Model 对 ViewModel 一无所知
  • ViewModel 对 View 一无所知

那么ViewModel 如何响应用户在 View 上执行的操作,例如在文本框中输入内容或移动 slider 等。

  1. 我知道这是通过 RoatedEvents 完成的,但我发现的几乎所有 RoutedEvent 示例都在 View 中使用 CodeBehind,而这正是 MVVM 中不再有的功能。

  2. 所以剩下了 RoatedCommands,我在 MVVM 中找到了更多示例,但例如从这个意义上说,移动 slider 实际上不是一个命令,而是一个事件,所以我想知道这是否真的应该使用。

  3. 然后我read advice例如“在 MVVM 中尽可能少地使用 RoutedEvents,并且完全不使用 RoutedCommands”好的。

  4. 因此,例如在 WPF Model-View-ViewModel Toolkit 0.1从 WPF 团队本身的项目中,您有一个“DelegateCommand”,这看起来也是一种有趣的方式。

  5. 然后有些人也在使用“RelayCommand”。

对于开发应用程序来说,做如此核心的事情会面临很多选择和困惑。

在 MVVM 中简单地完成我们过去 10 年使用代码隐藏所做的事情的最佳方式是什么:

  • 创建按钮
  • 双击按钮
  • 编写处理代码

最佳答案

需要明确的是,当人们提到 DelegateCommandRelayCommand 时,他们实际上在谈论同一件事:允许您传入委托(delegate)的 ICommand 实现。您可以互换使用它们。

就我而言,将 View (XAML) 绑定(bind)到 ViewModel 中的 DelegateCommands 是实现 MVVM 的最佳方式。

只要有可能,我就会远离 RoutedEvents 和代码隐藏。

关于wpf - 在 MVVM 中,ViewModel 响应 View 中用户操作的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/858268/

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