正如你所知道的事件的情況下直接行爲,你不能綁定到一個命令:在風格的EventTrigger中觸發命令?
<DataGrid>
<i:Interaction.Triggers>
<i:EventTrigger EventName="PreviewMouseDoubleClick">
<i:InvokeCommandAction Command="{Binding TradeEntryCommand"} />
</i:EventTrigger>
</i:Interaction.Triggers>
</DataGrid>
這工作完全正常,但現在我已經從雙擊DataGrid中本身雙擊單元格重構這個。 (我不關心點擊了哪個小區)
我希望現在來定義單元格樣式像這樣這裏面behviour:
<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>
但我怎麼會在行爲帶來從上面到火命令?
高度讚賞,
這已經在SO上有很多關於定義風格行爲的SO。簡而言之:你不能,至少不能跳過很多複雜的代碼循環。我喜歡EventToCommand的行爲,但在這種情況下,我一直只需要在執行viewmodel命令的視圖上使用常規的EventSetter和方法處理程序。它感覺骯髒,它看起來很醜,涉及到所有的空值檢查,但是看過「解決方案」,它可能仍然更簡單,除非你發現自己在大型應用程序中遇到這麼多次。 – 2011-08-16 18:26:15