0

我将一个可观察的集合绑定到silverlight中的一个列表框。当我单击列表框中的一项并单击删除按钮时,如何使用mvvm在不使用linq的情况下从列表框中删除该特定项目。我传递的按钮的命令参数是列表框itemid。

 <ListBox   ItemsSource="{Binding School1,Mode=TwoWay}" DisplayMemberPath="SchoolName"  Name="listBox1"  >
<Button Content="Delete" Command="{Binding deletecommand}" CommandParameter="{Binding Path=SelectedItem.ID,ElementName=listBox1}"   Name="button2" />

那么从可观察集合中删除特定项目的代码是什么

public void delete(object parameter)
{
School1.Remove(...)
}
4

1 回答 1

0

将 ListBox 的SelectedItem绑定到一个属性并在您的 Remove() 中使用它:

 <ListBox ItemsSource="{Binding School1, Mode=TwoWay}" 
          DisplayMemberPath="SchoolName"  
          SelectedItem={Binding SelectedSchool}
          Name="listBox1"  
          />


public void delete(object parameter)
{
    if (SelectedSchool != null)
        School1.Remove(SelectedSchool);
}

另请注意,您的问题有些重复:Clearing selecteditem of listbox (which is bound to collection of objects) with MVVM

于 2012-11-12T06:11:27.220 回答