所以我有一个listview,它的itemsSource属性绑定到一个ObservableCollection,放在视图模型上。一个按钮在视图上 如何使按钮删除列表视图中从observableCollection中选择的项目?
答案 0 :(得分:5)
只是添加另一种方法:
<ListView ItemsSource="{Binding MyList}"
SelectedItem="{Binding SelectedItem}"/>
<Button Command="{Binding DeleteCommand}"/>
在您的ViewModel中,您有一个名为SelectedItem
的属性,每次更改ListView
中的选择时都会更新该属性。
现在您可以轻松处理ViewModel
中的删除:
internal class ViewModel
{
public ViewModel()
{
this.DeleteCommand = new RelayCommand(() => this.Delete());
}
public void Delete()
{
this.MyList.Remove(this.SelectedItem);
}
}
转到HERE了解有关RelayCommand
答案 1 :(得分:3)
有很多方法可以做到这一点。一种方法是使用参数
创建RelayCommand
或DelegateCommand
<Button Command="{Binding MyDeleteCommand}"
CommandParameter="{Binding ElementName=mylistview, Path=SelectedItem}"/>
您可以按照AlSki的方式发布并将SelectedItem
绑定到您的ViewModel
并处理ViewModel
答案 2 :(得分:1)
将第二个属性绑定到列表视图选定项,将第三个属性绑定到视图模型上的Command,它只是从项列表中删除所选项。