我目前正在將一箇中等規模的WPF項目轉換爲MVVM,但遇到了一個我無法解決的問題。你能幫我一下嗎?將參數附加到KeyUp事件
目標框架是.NET 3.5.1。
我有一個列表視圖,從底層視圖模型獲取其項目。該視圖模型暴露了一個命令,從列表視圖中刪除所選項目。因此,命令參數綁定到列表視圖的SelectedItems屬性。
<ListView ItemsSource="{Binding MyItems}"
x:Name="MyListView"
SelectionMode="Extended">
</ListView>
<Button x:Name="MyRemoveButton"
Content="Remove item"
Command="{Binding RemoveItemCommand}"
CommandParameter="{Binding ElementName=MyListView, Path=SelectedItems}">
我的目的是不僅按下一個按鈕時執行該命令,還可以當KeyUp事件的列表視圖解僱,按下的鍵是「刪除」。
我接近找到解決方案時,我偶然發現了在這個例子中互動觸發:
現在有了這個演示的問題是,命令參數是按鍵,但對我來說我需要命令參數是SelectedItems屬性,我需要該命令僅在特定鍵上執行。
有沒有辦法做到這一點,沒有太多的開銷和MVVM的方式?
像這樣的事情將是真棒:
<i:Interaction.Triggers>
<i:EventTrigger EventName="KeyUp">
<local:CommandAction Command="{Binding RemoveItemCommand}"
CommandParameter={Binding ElementName=MyListView, Path=SelectedItems}
EventArgument="Key.Delete"/>
</i:EventTrigger>
</i:Interaction.Triggers>
這不是嚴格的,這是肯定一個選項,但現在我想要一個嚴格的分離。這是一種概念證明,我試圖探討在嚴格分離使用MVVM時可能遇到的各種問題。 – 2010-07-14 07:11:02