2013-08-05 6 views
1

У меня есть TabControl с несколькими TabItems. Я хочу, чтобы один из моих TabItems работал как кнопка. Когда я нажимаю на TabItem, я хочу, чтобы он выполнял команду в моей связанной ViewModel. У меня есть следующий код на мой взгляд:Связать ICommand с TabItem WPF (MVVM)

  <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 является ICommand в ViewModel. У меня определено пространство имен интерактивности. Что мне здесь не хватает?

+0

Что ваша проблема? Если команда не работает, что говорит окно вывода? – HichemSeeSharp

ответ

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

Попробуйте использовать MouseDown вместо MouseLeftButtonDown как ссылка MSDN Последнее событие не существует на элементе управления TabItem.

Если ваши требования настаивают только на левой кнопке, тогда проверьте состояние мыши в команде.

Смежные вопросы