首页 > 解决方案 > 从列表框中获取多项选择

问题描述

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

<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);
        }
      }
  }

因此,当用户单击一个项目(将其添加到选择中)时,所有选定的项目都应打印到控制台。但相反,所有项目都被打印,除了(!)被选中的项目。丢失的项目仅在列表框中的下一次单击时打印(例如取消选择该项目或选择另一个项目,然后也不会打印......等等)。这种情况如何处理?

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

标签: c#wpfdata-binding

解决方案


推荐阅读