使用XAML(MVVM)将ICommand绑定到WPF tabcontrol / tabitem

时间:2011-03-02 02:34:10

标签: wpf mvvm

我有一个使用MVVM模式构建的WPF 3.5应用程序。我有一个tabcontrol,当用户点击某个标签时(我的情况是“预览”标签),我想在视图模型上执行ICommand。 如何仅使用XAML将我的ICommand连接到tabitem或tabcontrol?我正在使用MVVM所以我不想使用事件并在代码隐藏中获得肮脏,脏代码。

我想我在这里错过了一些简单的东西! 感谢,P

2 个答案:

答案 0 :(得分:1)

您应该使用InvokeCommandAction,如下所示:

        <TabItem Header="TabItem">
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="MouseLeftButtonDown">
                    <i:InvokeCommandAction Command="SomeCommand"/>
                </i:EventTrigger>
            </i:Interaction.Triggers>
            <Grid />
        </TabItem>

请务必在顶部包含xmlns:

xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"

当然要参考System.Windows.Interactivity(WPF4中的新内容)

答案 1 :(得分:1)

请参阅此文章:hooking up commands to events

或者您可以使用此approach