2012-02-14 59 views
3

我想通過按下Delete鍵來觸發DelegateCommand,以實際刪除當前選定的項目。在按鍵上刪除ListView SelectedItem

我有麻煩找到正確的語法來做到這一點。我正在使用INotifyPropertyChanged實現綁定到ViewModel上的公共屬性。

有沒有辦法做到這一點?似乎應該有。

我有一個

ObservableCollection<Object> Objects 

允許在每個對象字段(如姓名,地址)

感謝您的幫助說

回答

8

要從按鍵得到一個命令火災:

<ListView ItemsSource="{Binding Path=Objects}" SelectedItem="{Binding Path=SelectedObject}"> 
     <ListView.InputBindings> 
      <KeyBinding Key="Delete" Command="{Binding Path=MyCommand}"></KeyBinding> 
     </ListView.InputBindings> 
    </ListView> 

爲您選擇的項目,有一個屬性在您的視圖模型和ListView的的SelectedItem綁定到它。

+0

就是這樣。謝謝.... – DavieDave 2012-02-14 17:37:47

0

您可以使用「事件指揮」的功能MVVM Light Toolkit。通過使用這個,您可以將keydown事件設置爲一個命令,該命令會在ViewModel中觸發,並將選定項目的索引作爲參數。在您的ViewModel中,假設您的observablecollection已連接到您的ListView權限,則可以根據索引從集合中刪除所選項目。確保列表視圖的items屬性上的updatesourcetrigger設置爲「屬性已更改」。