C# 如何从列表中删除?面向MVVM模式
我有一个listview,它的itemsSource属性绑定到一个ObservableCollection,放在视图模型上。和视图上的按钮C# 如何从列表中删除?面向MVVM模式,c#,wpf,mvvm,C#,Wpf,Mvvm,我有一个listview,它的itemsSource属性绑定到一个ObservableCollection,放在视图模型上。和视图上的按钮 如何使按钮从observableCollection中删除listview上选定的项目?将第二个属性绑定到列表视图选定的项目,将第三个属性绑定到视图模型上的命令,该命令仅从项目列表中删除选定的项目 请参见将第二个属性绑定到列表视图中的选定项,将第三个属性绑定到视图模型上的命令,该命令仅从项目列表中删除选定项 请参见有很多方法可以做到这一点。一种方法是使用参数
如何使按钮从observableCollection中删除listview上选定的项目?将第二个属性绑定到列表视图选定的项目,将第三个属性绑定到视图模型上的命令,该命令仅从项目列表中删除选定的项目
请参见将第二个属性绑定到列表视图中的选定项,将第三个属性绑定到视图模型上的命令,该命令仅从项目列表中删除选定项
请参见有很多方法可以做到这一点。一种方法是使用参数创建
RelayCommand
或DelegateCommand
<Button Command="{Binding MyDeleteCommand}"
CommandParameter="{Binding ElementName=mylistview, Path=SelectedItem}"/>
您可以按照AlSki发布的方式,将
SelectedItem
绑定到ViewModel
并在ViewModel
中处理不带参数的命令。一种方法是使用参数创建RelayCommand
或DelegateCommand
<Button Command="{Binding MyDeleteCommand}"
CommandParameter="{Binding ElementName=mylistview, Path=SelectedItem}"/>
您可以按照AlSki发布的方式,将
SelectedItem
绑定到ViewModel
并在ViewModel
中处理不带参数的命令,只需添加另一种方法即可:
<ListView ItemsSource="{Binding MyList}"
SelectedItem="{Binding SelectedItem}"/>
<Button Command="{Binding DeleteCommand}"/>
有关RelayCommand的更多信息,只需添加另一种方法即可:
<ListView ItemsSource="{Binding MyList}"
SelectedItem="{Binding SelectedItem}"/>
<Button Command="{Binding DeleteCommand}"/>
有关
RelayCommand
的更多信息,您可以使用命令功能。检查您可以使用命令功能的答案。如果列表中包含重复项,并且用户选择删除除第一个重复项以外的其他项,则检查是否存在错误的答案。例如,如果用户选择列表中的最后一项{2,3,4,5,2}
,则该命令将删除第一项。删除的含义应在您的业务案例中定义,并在方法delete
中实现。此外,在80%的情况下,删除第一次可能是您想要的。如果列表包含重复项,并且用户选择删除第一次重复项以外的项,则会出现错误。例如,如果用户选择列表中的最后一项{2,3,4,5,2}
,则该命令将删除第一项。删除的含义应在您的业务案例中定义,并在方法delete
中实现。此外,在80%的情况下,删除第一个事件可能是您想要的。