2012-03-12 3 views
6

iv'e에는 특정 조건이 충족 될 때만 PreviewMouseLeftButtonDown 이벤트에 대한 이벤트 핸들러를 첨부해야하는 itemscontrol이 여러 개 있습니다.DataTrigger를 사용하여 동적으로 이벤트 핸들러를 설정합니다.

iv'e 내가 그것의 바인딩을 체크 아웃하고 바로 datatrigger가 를 작동하는지 확인하기 위해 경계선의 속성에 대한 일반 속성 setter 그것을 밖으로 시도하는 datatrigger 내 컨트롤의 스타일을 디자인했다. (그것은 않습니다.)

datatrigger의 조건이 일반 속성 설정자와 동일한 방식으로 이벤트 설정기를 사용하여 충족 될 때 데이터 래치를 적용하여 이벤트 처리기를 부착 할 수 있습니까? 의 라인을 따라

뭔가 :

'Set property 'System.Windows.EventSetter.Event' threw an exception.' 

내부 예외 :

 <Style TargetType="{x:Type ItemsControl}">        
     <Style.Triggers> 
      <DataTrigger Binding="{Binding Turn}" Value="True"> 
       <EventSetter Event="PreviewMouseLeftButtonDown" Handler="ItemsControl_MouseLeftButtonDown"></EventSetter> 
      </DataTrigger>        
     </Style.Triggers> 
    </Style> 

이 태그는 eventsetter 줄에 다음과 같은 예외가 발생 불행하게도 아래 MSDN doc에 따라

 {"Value cannot be null.\r\nParameter name: value"} 
+0

정확히 어떤 행에서 예외가 발생합니까? 그것은 '입니까? –

+0

@XiaoChuanYu 내 같은 어떤 것이 내가 실제로 종속성 속성을 등록하는 생각 –

답변

11

비고 :

Style.Setters는 EventSetter 개체 만 지원합니다. 동적 이벤트 핸들러를 설정하는 데 사용할 수 없도록 (TriggerBase 및 파생 클래스) 이 경우되지 지원 EventSetter에게

을 트리거 DataTrigger는 TriggerBase에서 파생됩니다. 현재 생각할 수있는 해결 방법은 Turn 값에 따라 스타일을 동적으로 전환하는 것입니다.

+0

, :,와 세터에서 그것을 mouseleftbuttondown = "참"사용을 setter에서 사용자 지정 종속성 속성을 사용할 수 있는지 모르겠다. –

+0

나는 상황에 맞지 않을까 의심 스럽지만 http://stackoverflow.com/questions/1138339/can-i-dynamically를보고 싶을 수도있다. -switch-between-styles-in-wpf –

+0

그게 좋은 생각입니다. 내가 이미 가지고있는 스타일을 기반으로 한 스타일을 좋아해요.

관련 문제