是否可以从ViewModel触发复选框命令?

时间:2015-04-02 10:20:37

标签: wpf xaml mvvm checkbox

我的视图模型中有一个名为“ViewType”的bool属性的复选框数据绑定。如果“ViewType”为true,则选中复选框,否则不是。

问题是,需要在视图模型中打开和关闭复选框,而不是鼠标单击以触发命令。

上述复选框:

<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>

但这也不起作用...... 我可以做出任何可以触发命令的改动吗?

1 个答案:

答案 0 :(得分:0)

由于您使用的是RoutedCommand,因此您已经不在纯ViewModel领域之外,所以没有理由不挂接Checked/Unchecked的事件处理程序(当Binding更改时会触发)并从那里执行命令。