WPF(MVVM)从Listbox中删除项目

时间:2016-09-20 11:45:50

标签: c# wpf mvvm

我创建了一个ViewModel类,它返回一个XmlDataProvider的istance,我在ListBox中绑定它,一个DeleteCommand(ICommand)。

   <ListBox x:Name="Books" Margin="0,0,0,10"    
                     DataContext="{Binding DataProvider}"
                     ItemsSource="{Binding}"                      
                     SelectionMode="Single">
   </ListBox>

 <Button Command="{Binding DeleteCommand}">Remove item</Button>

列表框加载XML的数据,按钮执行DeleteCommand就好了。

我的Xml是这样的,DataProvider XPath =“Books / Book”:

<Books>
   <Book Id="1">The book</Book>
   ...
</Books>

问题是我甚至无法弄清楚如何取回列表中选择的项目。我的目标是将id放入ViewModel或将其绑定到按钮并将其作为参数传递但我不知道如何。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

使用CommandParameter:

<Button Command="{Binding DeleteCommand}" CommandParameter="{Binding ElementName=Books Path=SelectedItem}">Remove item</Button>

这样您就可以将SelectedItem传递给您的方法。