将ICommand绑定到TabItem WPF(MVVM)

时间:2013-08-05 01:52:32

标签: wpf mvvm binding tabitem

我有一个带有几个TabItem的TabControl。我希望我的一个TabItems充当按钮。当我单击TabItem时,我希望它在我关联的ViewModel中执行命令。我的视图中有以下代码:

         <TabItem  Header="Manage Users" Visibility="{Binding IsAdmin, Converter={StaticResource VisibilityOfBool}}" >
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="MouseLeftButtonDown">
                    <i:InvokeCommandAction Command="{Binding Path=OpenLoginCommand}"/>
                </i:EventTrigger>
            </i:Interaction.Triggers>
        </TabItem>

OpenLoginCommand是ViewModel中的ICommand。我定义了交互命名空间。我在这里缺少什么?

2 个答案:

答案 0 :(得分:2)

尝试PreviewMouseLeftButtonDown

<TabItem  Header="Manage Users" Visibility="{Binding IsAdmin, Converter={StaticResource VisibilityOfBool}}">
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="PreviewMouseLeftButtonDown">
            <i:InvokeCommandAction Command="{Binding Path=OpenLoginCommand}"/>
        </i:EventTrigger>
    </i:Interaction.Triggers>
</TabItem>

答案 1 :(得分:1)

尝试使用MouseDown代替MouseLeftButtonDown作为引用MSDNTabItem控件上不存在后一事件。

如果您的要求仅限于左键,则检查命令中的鼠标状态。