2013-08-05 3 views
1

몇 TabItem이있는 TabControl이 있습니다. 내 TabItem 중 하나를 버튼으로 사용하길 원합니다. TabItem을 클릭하면 연관된 ViewModel에서 Command를 실행하고 싶습니다. 내보기에 다음 코드가 있습니다.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는 ViewModel의 ICommand입니다. 상호 작용 네임 스페이스를 정의했습니다. 내가 여기서 무엇을 놓치고 있니?

+0

문제는 무엇 PreviewMouseLeftButtonDown를 시도? 명령이 작동하지 않으면 출력 창에 무엇이 표시됩니까? – HichemSeeSharp

답변

2

<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

MouseLeftButtonDown 대신 MouseDown을 사용하여 MSDN을 참조하십시오. 후자의 이벤트는 TabItem 컨트롤에 없습니다.

요구 사항이 왼쪽 버튼 만 고집하는 경우 명령 내에서 마우스의 상태를 확인하십시오.

관련 문제