【问题标题】:Bind an ICommand to a TabItem WPF (MVVM)将 ICommand 绑定到 TabItem WPF (MVVM)
【发布时间】:2013-08-05 15:41:31
【问题描述】:

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

【问题讨论】:

  • 您有什么问题?如果命令不起作用,输出窗口会显示什么?

标签: wpf mvvm binding tabitem


【解决方案1】:

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

【讨论】:

【解决方案2】:

尝试使用MouseDown 而不是MouseLeftButtonDown 作为引用MSDN 后一个事件在TabItem 控件上不存在。

如果您的要求只支持左键,请检查命令中的鼠标状态。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    • 2012-06-11
    • 2016-04-23
    • 2015-11-13
    • 1970-01-01
    • 1970-01-01
    • 2018-04-21
    相关资源
    最近更新 更多