2011-03-02 3 views
3

MVVM 패턴을 사용하여 WPF 3.5 앱을 만들었습니다. 나는 tabcontrol 있고 사용자가 특정 탭 (jn 내 경우 "미리보기"탭) 클릭 할 때보기 모델에서 ICommand excecute 싶습니다. XAML 만 사용하여 ICommand를 tabitem 또는 tabcontrol에 어떻게 연결합니까? MVVM을 사용하고 있으므로 이벤트를 사용하고 싶지 않고 더러워진 코드 코드를 코드 숨김으로 사용하십시오.XAML (MVVM)을 사용하여 ICommand를 WPF tabcontrol/tabitem에 바인딩

나는 여기 뭔가 간단한 것을 놓치고 있다고 생각합니다! 감사, P

답변

1

이 기사를 참조하십시오. hooking up commands to events

또는 이것을 사용할 수 있습니다. approach

+0

힌트를 보내 주셔서 감사합니다! 이 스타일은 나를 위해 일했습니다 : http://sachabarber.net/?p=510 –

1

당신은 InvokeCommandAction를 사용해야합니다, 다음과 같습니다 (새로운 System.Windows.Interactivity를 참조

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

물론 :

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

하면 상단에서의 xmlns을 포함해야합니다 WPF4)

+0

WPF 3.5에서 작동하지 않을 수 있습니다. –

+0

당신은 WPF3.5에서도 그것을 할 수 있습니다, 오직 당신은 블렌드 SDK (구글 그것)을 사용해야합니다. WPF4의 새로운 기능이 있지만 WPF3 이후 기본적으로 사용할 수 있다는 점에 유의하십시오.이 속성은 첨부 된 속성 트릭입니다. –

+0

흠. 그것을 시도했다. 그러나이 아름다움을 지나칠 수는 없습니다. "XamlParseException : 'System.Windows.Interactivity.EventTrigger'형식의 콘텐츠를 'System.Windows.Interactivity.TriggerCollection'유형의 개체에 추가 할 수 없습니다." –

관련 문제