如何在silverlight中从observablecollection中删除自定义项

如何在silverlight中从observablecollection中删除自定义项,silverlight,mvvm,Silverlight,Mvvm,我在silverlight中将一个可观察的cllection绑定到一个listbox。当我单击listbox中的一个项目并单击delete按钮时,如何使用mvvm从listbox中删除该特定项目,而不使用linq。我传递了该按钮的commandparameter是listbox itemid <ListBox ItemsSource="{Binding School1,Mode=TwoWay}" DisplayMemberPath="SchoolName" Name="listBo

我在silverlight中将一个可观察的cllection绑定到一个listbox。当我单击listbox中的一个项目并单击delete按钮时,如何使用mvvm从listbox中删除该特定项目,而不使用linq。我传递了该按钮的commandparameter是listbox 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" />
将列表框绑定到属性,并在Remove()中使用该属性:


公共void delete(对象参数)
{
if(SelectedSchool!=null)
学校1.删除(所选学校);
}

还要注意,您的问题有点重复:

hi@slugster我为selectedschool创建了一个字符串属性并绑定。当我编写school 1时。删除(selectedschool)它的创建错误。@nixen09错误是什么?您是否在
delete()
函数的代码中设置了断点,以便使用调试器检查其中的值?我清除了该断点。我使用selectedindex并使用它从ObservaleCollection中删除值。当我使用selecteditem时,我得到了特定的类名。错误是,它有一些无效的参数。我像这样编写代码1。删除(selecteditem)。我尝试在使用selecteditem时查找错误,但我无法解决此问题。。
public void delete(object parameter)
{
School1.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);
}