C# 从列表框中获取多个选择

C# 从列表框中获取多个选择,c#,wpf,data-binding,C#,Wpf,Data Binding,我的wpf应用程序中有一个列表框: <ListBox x:Name="detailComponentListBox" HorizontalAlignment="Left" Margin="115,65,0,10" Width="171" ItemsSource="{Binding ComponentList}" SelectionMode="Multiple" SelectedValue="{Binding selectedComponent}"/> 因此,当用户单击某个项目(将其

我的wpf应用程序中有一个列表框:

<ListBox x:Name="detailComponentListBox" HorizontalAlignment="Left" Margin="115,65,0,10" Width="171" ItemsSource="{Binding ComponentList}" SelectionMode="Multiple" SelectedValue="{Binding selectedComponent}"/>
因此,当用户单击某个项目(将其添加到选择中)时,所有选定的项目都应打印到控制台。但是,除了选中的(!)项之外,所有项目都将打印。缺少的项目仅在列表框中的下一次单击时打印(例如,取消选择该项目或选择另一个项目,然后也不会打印该项目…等等)。这个案子怎么办


背景:我有一个显示数据库中实体的应用程序。当选择一个实体时,一个属性通过该列表框可视化(该实体“包含”列表框中的项目)。然后,用户可以通过鼠标单击选择来添加/删除列表框中的项目。这些更改应立即推送到数据库。为此,我需要捕获列表框的“选择/取消选择事件”并读取所选项目。

与其绑定SelectedValue(实际上应该是SelectedItem),不如处理SelectionChanged事件。我也尝试了SelectedItem。行为没有改变。我将调查SelectedChange事件。谢谢。@Clemens selectionChanged可以工作,但这不符合mvvm模式。我没有找到一个使用selectionchanged的mvvm的有效解决方案。您能帮忙吗?在“视图模型”属性设置器中使用
Application.Current.MainWindow
,与MVVM的距离更大。您可以在web上搜索附加属性的实现,该属性包装SelectedItems属性以使其可绑定。我明白您的意思。谢谢你的帮助,即使它不能回答我的问题。
public String selectedComponent
  {
      set
      {
        MainWindow mw = (MainWindow)Application.Current.MainWindow;
        foreach (String test in mw.detailComponentListBox.SelectedItems)
        {
           Console.WriteLine(test);
        }
      }
  }