【问题标题】:How to make handler event in mvvm wpf如何在 mvvm wpf 中制作处理程序事件
【发布时间】:2016-06-10 11:17:16
【问题描述】:

当我们在 wpf 中遵循 MVVM 模式时,如何为 Event Setter 处理程序创建命令。我的 xmal 代码如下:

<ListBox.ItemContainerStyle>
         <Style TargetType="ListBoxItem">
             <EventSetter Event="Drop" Handler="horizontalListBox2_Drop" />
         </Style>
    </ListBox.ItemContainerStyle>

【问题讨论】:

    标签: wpf mvvm


    【解决方案1】:

    您不需要命令来跟随 MVVM,您也可以使用该处理程序和代码并在 VM 上调用某些东西。但是您可以创建一个 markup extension 来为您执行此操作,而无需这样做。这是an example where i create an extension to filter a collection。如果您没有复杂的参数,您当然也可以使用花括号。

    【讨论】:

    • 我在我的应用程序中使用 MVVM 模型,所以我无法在后面的代码中创建句柄。请告诉我这是如何在 mvvm 中实现的。
    • @naina:我告诉过你如何在没有代码的情况下做到这一点,你也错了:正如我所说,代码背后不是 MVVM 中的问题,这只是一个常见的误解。
    • 我们需要在这个事件中执行一些操作,信息保存在视图模型中,如何管理。
    • @naina:标记扩展将调用视图模型的命令,因此视图模型提供的所有信息无论如何都可以很容易地访问该命令。如果这些也相关,您还可以设计您的扩展程序以将事件参数作为命令参数转发。
    • 我想要像 mvvm private void Horizo​​ntalListBox_PreviewMouseLeftButtonDown3(object sender, MouseButtonEventArgs e) { if (sender is ListBoxItem) { ListBoxItem draggedItem = sender as ListBoxItem; DragDrop.DoDragDrop(draggedItem, draggedItem.DataContext, DragDropEffects.Move); draggedItem.IsSelected = true; } }
    猜你喜欢
    • 1970-01-01
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 2012-01-29
    • 2016-10-31
    相关资源
    最近更新 更多