首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在虚拟机中处理MouseLeftButtonDown

在虚拟机中处理MouseLeftButtonDown
EN

Stack Overflow用户
提问于 2013-01-02 13:43:25
回答 2查看 7.5K关注 0票数 4

我的XAML是:

代码语言:javascript
复制
<Setter Property="Template">
    <Setter.Value>
        <ControlTemplate>
            <Image Source="X.png" HorizontalAlignment="Left"
                                 Width="20" Height="20" 
                                 MouseLeftButtonDown="Image_MouseLeftButtonDown"/>
        </ControlTemplate>
    </Setter.Value>
</Setter>

现在我正在关注MVVM。我需要更改代码以使其与ViewModel一起工作。如何使用ViewModel处理MouseLeftButtonDown事件?

EN

回答 2

Stack Overflow用户

发布于 2013-01-02 16:32:21

使用MVVM时:视图中的触发器(可以是MouseLeftDown、MouseHover等)在ViewModel中触发。

这些命令在ViewModel中执行一些操作,如果此命令更改了视图中绑定的任何数据,您可以在视图中看到结果。

因此,不要问“如何使用视图模型处理MouseLeftButtonDown事件”,而要决定您希望在ViewModel中做什么(例如从列表框中删除项、导航到另一个视图、刷新数据等)。并为其创建特定的命令。

MouseLeftDown可以触发该命令...但到底做了什么不应该是视图的一部分...

捕捉鼠标事件并运行命令的Here is an example,使用MVVM和only XAML。

票数 5
EN

Stack Overflow用户

发布于 2013-01-02 16:31:56

在我看来,鼠标左键不应该由"MVVM“处理(由绑定处理)。它与模型没有任何关系,因为它被重新设计为UI体验。

为此,我会附加到我的代码后台中的“老式”MouseRightButtonDown事件,然后在视图中激发命令或方法。因为模型不需要知道命令是如何执行的。按钮点击、鼠标手势和菜单都与UI相关。

至少在我看来:-)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14117377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档