我想按一下Delete键来触发DelegateCommand,以便在那时实际删除selecteditem。
我在找到正确的语法时遇到了麻烦。我正在使用INotifyPropertyChanged实现绑定到我的ViewModel上的公共propreties。
有办法做到这一点吗?好像应该有。
我有一个
ObservableCollection<Object> Objects
让我们说每个对象中的字段(即名称,地址)
感谢您的帮助
答案 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设置为“属性已更改”。