WPF-MVVM:TabItem标头在viewmodel中单击事件处理

时间:2013-02-16 11:26:14

标签: wpf mvvm

我在后面的代码中找到了很多关于处理TabItem标题点击事件的答案,但我需要在View Model中处理该事件。 提前致谢

2 个答案:

答案 0 :(得分:2)

将属性绑定到选项卡控件SelectedIndex。

您的XAML:

<TabControl x:Name="tabControl" SelectedIndex="{Binding tabControlSelectedIndex}">

您的ViewModel:

Private _tabControlSelectedIndex As Integer
Public Property tabControlSelectedIndex As Integer
    Get
        Return _tabControlSelectedIndex
    End Get
    Set(value As Integer)
        If _tabControlSelectedIndex <> value Then
            _tabControlSelectedIndex = value
             OnPropertyChanged("tabControlSelectedIndex")

             '
             ' Whatever you want to handle here
             '

        End If
    End Set
End Property

答案 1 :(得分:1)

您可以使用MVVM light的EventToCommand方法:

  1. 在项目中添加对System.Windows.Interactivity.dll的引用。

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

  3. 添加xaml例如:

    <Button> <i:Interaction.Triggers> <i:EventTrigger EventName="MouseEnter" > <i:InvokeCommandAction Command="{Binding FooCommand}" /> </i:EventTrigger> </i:Interaction.Triggers> </Button>

  4. 您可以在此处查看代码: http://www.danharman.net/2011/08/05/binding-wpf-events-to-mvvm-viewmodel-commands/