如何将Checkbox.checked路由事件转换为MVVM模式的命令?
参考 - 考虑按钮单击路由事件,当我们为按钮分配命令时,button.click事件被视为命令。它执行相应的命令。
我用谷歌搜索,我得到了EventBehaviourFactory的解决方案。是否可以不使用EventBehaiourFactory?
答案 0 :(得分:8)
这是WPF中的常见要求。最广泛使用的解决方案是使用Blend SDK中的Interactivity
:
将此xmlns命名空间添加到xaml:
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
然后你可以这样做:
<CheckBox>
<i:Interaction.Triggers>
<i:EventTrigger EventName="Checked">
<i:InvokeCommandAction Command="{Binding MyCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</CheckBox>
当然,您需要将 System.Windows.Interactivity.dll 添加到您的项目中(至少对我而言)位于:C:\Program Files (x86)\Microsoft SDKs\Expression\Blend 3\Interactivity\Libraries\WPF\System.Windows.Interactivity.dll