2

我有一个带有几个 TabItems 的 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。我定义了交互命名空间。我在这里想念什么?

4

2 回答 2

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>
于 2013-08-05T02:45:17.280 回答
1

尝试使用MouseDown而不是MouseLeftButtonDown引用MSDNTabItem ,后者事件在控件上不存在。

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

于 2013-08-05T02:14:09.320 回答