我使用MVVM模式,我有以下代码:
<DataTemplate x:Key="ActivityEditTemplate">
<ItemsControl ItemsSource="{Binding Path=ActivityList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<CheckBox Margin="2,0,2,0" Content="{Binding ActivityDescription}" IsChecked="{Binding IsSelected}" Command="vm:PatternViewModel.ActivityCommand" CommandParameter="{Binding ActivityTitle}">
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DataTemplate>
ItemsControl中的复选框需要允许多选。我有一个路由命令,可以在复选框上轻松实现它,但是我只希望命令在项目控件折叠时执行。 datatemplate是WPF数据网格中CellEditingTemplate的静态资源。我希望代码仍然采用MVVM模式。我认为鼠标离开事件调用命令没有运气。提前谢谢。
答案 0 :(得分:0)
我不是WPF专家,我可能会以错误的方式阅读您的问题。
但是,我刚刚读到这个:
还有一种方法可以将视图中的控件与视图模型公开的命令对象相关联。实际上只有一些控件可以通过Command属性绑定到命令,特别是那些从System.Windows.Controls.Primitives.ButtonBase或System.Windows.Controls.MenuItem派生的控件。如果要将命令附加到其他控件,或者要在按钮的单击事件以外的事件上调用命令,则可以使用Expression Blend交互触发器和System.Windows.Interactivity.InvokeCommandAction类。
您可能想查看事件触发器。