none
wpf 如何使用command命令绑定其他事件(非Click事件)到viewModel类中去? RRS feed

  • 问题

  • 其他的事件,例如鼠标双击事件,动态创建的控件例如ListViewItem或TreeViewIten,它们的鼠标双击事件或其他事件要怎么使用command命令绑定到ViewModel类中去?以及如何在这些事件绑定的代码过程中获取TreeView或ListView的选中项以及选中项的绑定对象?(treeView单个,listView单个或多个)
    2016年11月3日 13:16

答案

  • 您好 轮回的锯齿,

    您可以使用 EventTrigger来实现。以下代码供您参考。

    <Button Content="Test command">
        <i:Interaction.Triggers>
            <i:EventTrigger EventName="MouseDoubleClick">
                <i:InvokeCommandAction Command="{Binding Path=DoSomethingCommand}"/>
            </i:EventTrigger>
        </i:Interaction.Triggers>
    </Button>

    在使用这个代码之前您还需要在项目中引入System.Windows.Interactivity程序集。

    Best Regards,
    Li Wang


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2016年11月4日 10:10

全部回复

  • 您好 轮回的锯齿,

    您可以使用 EventTrigger来实现。以下代码供您参考。

    <Button Content="Test command">
        <i:Interaction.Triggers>
            <i:EventTrigger EventName="MouseDoubleClick">
                <i:InvokeCommandAction Command="{Binding Path=DoSomethingCommand}"/>
            </i:EventTrigger>
        </i:Interaction.Triggers>
    </Button>

    在使用这个代码之前您还需要在项目中引入System.Windows.Interactivity程序集。

    Best Regards,
    Li Wang


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2016年11月4日 10:10
  • 您好 轮回的锯齿,

    您可以使用 EventTrigger来实现。以下代码供您参考。

    <Button Content="Test command">
        <i:Interaction.Triggers>
            <i:EventTrigger EventName="MouseDoubleClick">
                <i:InvokeCommandAction Command="{Binding Path=DoSomethingCommand}"/>
            </i:EventTrigger>
        </i:Interaction.Triggers>
    </Button>

    在使用这个代码之前您还需要在项目中引入System.Windows.Interactivity程序集。

    Best Regards,
    Li Wang


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    你说的这个方法我是知道的,可问题是,这个方法在我看来只能用到静态的控件中啊,那些动态控件(treeViewItem,ListViewItem)的事件要怎么绑定到ViewModel类去啊?。
    2016年11月7日 1:05
  • 您好 轮回的锯齿,

    为什么您需要绑定集合控件的内部元素呢?我们使用MVVM模式的时候,需要把更多的控件权限交给ViewModel,所以我们需要在ViewModel中写上更多的属性变更事件来替代在UI上的事件。

    Best Regards,
    Li Wang


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2016年11月7日 7:04
  • 您好 轮回的锯齿,

    您可以使用 EventTrigger来实现。以下代码供您参考。

    <Button Content="Test command">
        <i:Interaction.Triggers>
            <i:EventTrigger EventName="MouseDoubleClick">
                <i:InvokeCommandAction Command="{Binding Path=DoSomethingCommand}"/>
            </i:EventTrigger>
        </i:Interaction.Triggers>
    </Button>

    在使用这个代码之前您还需要在项目中引入System.Windows.Interactivity程序集。

    Best Regards,
    Li Wang


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    你说的这个我也知道,不过我已经找到解决item类控件等问题了,感谢你的回答。

    用样式设置item类控件事件,然后把事件内容写上command命令代码,当item类控件事件响应时调用command命令,通过command命令去调viewmodel类中绑定的方法。


    2016年11月8日 2:59