당신은 당신이 행동하지 않고 명령에 직접 이벤트를 바인딩 할 수 없습니다 알다시피 :스타일의 EventTrigger에서 명령 실행?
<DataGrid>
<i:Interaction.Triggers>
<i:EventTrigger EventName="PreviewMouseDoubleClick">
<i:InvokeCommandAction Command="{Binding TradeEntryCommand"} />
</i:EventTrigger>
</i:Interaction.Triggers>
</DataGrid>
이, 그러나 지금은 셀을 클릭 두 번하는 데이터 그리드 자체를 더블 클릭에서이 리팩토링 완벽하게 잘해야 작품 . 나는이 같은 셀 스타일의 내부 지금이 behviour를 정의하는 기대했다
(I는 셀을 클릭 한 상관 없어) :
<Style x:Key="DefaultCellStyleBase" TargetType="{x:Type DataGridCell}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridCell}">
<ControlTemplate.Triggers>
<EventTrigger RoutedEvent="PreviewMouseDoubleClick">
?????????
</EventTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<!-- ... -->
</Style>
하지만 위에서 동작에 가져다 줄 것은 불하는 방법 명령? 매우 감사
,
스타일의 동작을 정의하는 것과 관련하여 이미 너무 많은 부분이 있습니다. 간단히 말해서, 적어도 복잡한 코드 - 홉을 뛰어 넘지 않고서는 안됩니다. EventToCommand 동작을 좋아하지만, 이와 같은 경우에는 viewmodel 명령을 실행하는보기에서 항상 메서드 처리기가있는 일반 EventSetter를 사용해야했습니다. 더러워진 것 같아요, 널 검사와 관련해서는보기 흉하게 보입니다. 그러나이 "솔루션"을 살펴보면 큰 응용 프로그램에서이 시간대에 자신을 발견하지 않는 한 아마 더 간단 할 것입니다. –