我的wpf-app中有一个列表框:
<ListBox x:Name="detailComponentListBox" HorizontalAlignment="Left" Margin="115,65,0,10" Width="171" ItemsSource="{Binding ComponentList}" SelectionMode="Multiple" SelectedValue="{Binding selectedComponent}"/>
selectedValue属性绑定到:
public String selectedComponent
{
set
{
MainWindow mw = (MainWindow)Application.Current.MainWindow;
foreach (String test in mw.detailComponentListBox.SelectedItems)
{
Console.WriteLine(test);
}
}
}
因此,当用户单击一个项目(将其添加到选择中)时,所有选定的项目都应打印到控制台。但是,除了(!)所选项目外,所有项目均被打印。缺少的项目仅在列表框中的下一次单击时才打印(例如,取消选择该项目或选择另一个项目,然后也将不会打印...等等)。如何处理这种情况?
背景:我有一个显示数据库中实体的应用。当选择一个实体时,将通过该列表框显示一个属性(该实体“包含”该列表框中的项目)。然后,用户可以通过单击鼠标的选择从列表框中添加/删除项目。这些更改应立即推送到数据库。为此,我需要捕获列表框的“选择/取消选择事件”并读取选择的项目。