如何处理MVVM中的事件

Pol*_*ris 8 c# wpf events mvvm

我是MVVM的新手.我只是学习这种模式,并希望在我的项目中使用它.我已经理解了这种模式的工作原理,并学会了如何使用命令.但我有问题如何处理另一个控件的事件,例如ListBox SelectionChanged事件.ListBox没有Command属性

Ken*_*art 14

你经常不需要.例如,你可以在绑定ListBoxSelectedItem属性来对您的视图模型的属性:

<ListBox ItemsSource="{Binding Customers}" SelectedItem="{Binding SelectedCustomer, Mode=TwoWay}"/>
Run Code Online (Sandbox Code Playgroud)

这不仅可以让您访问视图模型中的选定客户,还可以让您的视图模型通过设置属性本身来指定所选客户.

还有其他技术可以"避免"直接处理代码隐藏中的事件.例如,附加行为.但是,如果代码只关注视图并使代码更简单,则不应该害怕直接处理事件.