是否可以从 ViewModel 触发复选框命令?
Is it possible to fire a checkbox command from a ViewModel?
我在名为 "ViewType" 的视图模型中有一个数据绑定到 bool 属性 的复选框。如果 "ViewType" 为真,则复选框被选中,否则不被选中。
事实是,需要从视图模型中选中和取消选中复选框,而不是单击鼠标来触发命令。
所述复选框:
<CheckBox x:Name="ViewTypeCheckbox" IsChecked="{Binding ViewType, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Command="NavigationCommands.GoToPage" CommandParameter="/views/membership.xaml"/>
不幸的是,该命令只能通过鼠标单击触发。我不完全确定如何使用样式触发器或数据触发器来完成这项工作。我最近的尝试是:
<CheckBox x:Name="ViewTypeCHeckbox">
<DataTrigger Binding="{Binding ElementName=ViewTypeCHeckbox, Path=IsChecked}" Value="True">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Button.Click">
<i:InvokeCommandAction Command="NavigationCommands.GoToPage" CommandParameter="Views/membership.xaml" />
</i:EventTrigger>
</i:Interaction.Triggers>
</DataTrigger>
</CheckBox>
但这也不管用...
我可以做任何可以触发命令的改动吗?
由于您使用的是 RoutedCommand
,您已经在纯 ViewModel 领域之外,因此没有理由不为 Checked/Unchecked
连接事件处理程序(当 Binding更改)并从那里执行命令。
我在名为 "ViewType" 的视图模型中有一个数据绑定到 bool 属性 的复选框。如果 "ViewType" 为真,则复选框被选中,否则不被选中。
事实是,需要从视图模型中选中和取消选中复选框,而不是单击鼠标来触发命令。
所述复选框:
<CheckBox x:Name="ViewTypeCheckbox" IsChecked="{Binding ViewType, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Command="NavigationCommands.GoToPage" CommandParameter="/views/membership.xaml"/>
不幸的是,该命令只能通过鼠标单击触发。我不完全确定如何使用样式触发器或数据触发器来完成这项工作。我最近的尝试是:
<CheckBox x:Name="ViewTypeCHeckbox">
<DataTrigger Binding="{Binding ElementName=ViewTypeCHeckbox, Path=IsChecked}" Value="True">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Button.Click">
<i:InvokeCommandAction Command="NavigationCommands.GoToPage" CommandParameter="Views/membership.xaml" />
</i:EventTrigger>
</i:Interaction.Triggers>
</DataTrigger>
</CheckBox>
但这也不管用... 我可以做任何可以触发命令的改动吗?
由于您使用的是 RoutedCommand
,您已经在纯 ViewModel 领域之外,因此没有理由不为 Checked/Unchecked
连接事件处理程序(当 Binding更改)并从那里执行命令。