2017-11-09 1 views
0

버튼에 많은 명령 마우스 바인딩을 찾을 수 있지만 mousedown 이벤트를 바인딩 (MVVM 패턴)에 바인딩하려면 어떻게해야합니까? 나는 대답을 찾을 수 없다. 아마도 내가 볼 수없는 아주 작은 것이지만 누군가 이걸 도와 줄 수 있을까?WPF 레이블에 mousedown (명령/액션)을 바인딩하는 방법

XAML :

<Label Content="{Binding EntityName}" xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"> 
    <i:Interaction.Triggers> 
     <i:EventTrigger EventName="MouseDown" > 
      <i:InvokeCommandAction Command="{Binding DoSomething}" /> 
     </i:EventTrigger> 
    </i:Interaction.Triggers> 
</Label> 

자세한 내용은 다음 블로그 게시물을 참조하십시오 :

<DataTemplate> 
    <Grid AllowDrop="True"> 
    <Rectangle Width="100" Height="50" RadiusX="4" RadiusY="4" Fill="LightBlue"/> 
     <Label Content="{Binding EntityName}" MouseDown="{Binding DoSomething}"/> 
    </Grid> 
</DataTemplate> 
+1

'<라벨 내용 = "{엔티티 이름을 바인딩}"> ' –

+0

(MouseDown 대신 Click을 사용할 수 있다고 가정합니다.) –

+0

Click = DoSomething? – Remco

답변

2

당신은 상호 작용 트리거를 사용할 수 https://blog.magnusmontin.net/2013/06/30/handling-events-in-an-mvvm-wpf-application/

당신은 참조를 추가해야합니다 System.Windows.Interactivity.dll.

+0

나는 여전히 같은 오류가 있기 때문에 뭔가 잘못되었다고 생각합니다 : System.Windows.Markup.XamlParseException : '바인딩은 Label의 AddMouseDownHandler 속성에서 설정할 수 없습니다. 바인딩은 DependencyObject의 DependencyProperty에서만 설정할 수 있습니다. ' 다른 모든 바인딩이 작동하기 때문에 이상합니다. – Remco

+0

@RemcovanHeck 아니오,이 옵션은 정상적으로 작동합니다. 당신이 뭔가 잘못한 것 같아요. –

+0

@RemcovanHeck 어쩌면 우리는 [WPF chat] (https://chat.stackoverflow.com/rooms/18165/wpf)에서 계속 진행할 수 있습니다. –