在Keypress上删除ListView SelectedItem

时间:2012-02-14 16:37:27

标签: c# wpf listview

我想按一下Delete键来触发DelegateCommand,以便在那时实际删除selecteditem。

我在找到正确的语法时遇到了麻烦。我正在使用INotifyPropertyChanged实现绑定到我的ViewModel上的公共propreties。

有办法做到这一点吗?好像应该有。

我有一个

ObservableCollection<Object> Objects

让我们说每个对象中的字段(即名称,地址)

感谢您的帮助

2 个答案:

答案 0 :(得分:8)

要从按键触发命令:

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

对于您选择的项目,在viewModel中有一个属性,并将listView的SelectedItem绑定到它。

答案 1 :(得分:0)

您可以使用MVVM Light Toolkit中的“event to command”功能。通过使用它,您可以将keydown事件设置为在ViewModel中触发的命令,同时将所选项目的索引作为您的参数。在ViewModel中,假设您的observablecollection连接到ListView权限,则可以根据索引从集合中删除所选项。确保列表视图的items属性上的updatesourcetrigger设置为“属性已更改”。