gpt4 book ai didi

WPF 和 MVVM。绑定(bind)事件

转载 作者:行者123 更新时间:2023-12-04 07:11:21 24 4
gpt4 key购买 nike

我正在使用 MVVM 模式、RelayCommand 等开发 WPF 应用程序。
我在这个问题上读了很多,但我不清楚:

我要做的就是移动一个形状,例如椭圆,然后捕获它的最终位置,以放入数据库中。

但我无法将事件(MouseLetButtonDown、MouseLeftButtonUp 和 MouseMove)绑定(bind)到命令。我已阅读有关附加行为的信息,但我需要事件的参数(MouseButtonEventArgs 和 MouseEventArgs)来检索位置。

解决方案?

最佳答案

在编写 MVVM 图形应用程序时,尝试将所需的所有事件发送到 View 模型是很诱人的。但是在命令中处理特定于 View 的鼠标事件参数有悖于 MVVM 原则和松散耦合的目标。

解决这个问题的方法是将操作抽象为 View 可以执行的任务,然后通过操作和数据将其结果传达回 View 模型。如果你想在代码隐藏中执行少量代码来支持这一点,MVVM 警察不会来带你的 child 。但更好的方法是添加与行为的交互性。行为是可重用的功能片段,没有代码隐藏,可以很好地与 MVVM 模式和需要交互性的应用程序配合使用,否则需要将事件处理程序添加到 XAML。

有关使用鼠标事件拖动图形对象的行为的完整示例,请参见我的答案:

  • Coach a newbie through basic WPF? (I Do Not Grok It.)

  • 通过 View 执行的交互, View 模型可以坚持数据和命令。

    关于WPF 和 MVVM。绑定(bind)事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4785685/

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