如何从 WPF 工具包的 CheckComboBox 中获取选中项的列表

How to get list of checked items from WPF Toolkit's CheckComboBox

我不知道如何做这么简单的事情,比如从 WPF 工具包 CheckComboBox 中获取所有选中项的列表。

查看:

<xctk:CheckComboBox DisplayMemberPath="Name"
                    ItemsSource="{Binding RouteSheetRecordOperations, Mode=OneWay}"
                    SelectedItemsOverride="{Binding SelectedRouteSheetRecordOperations, Mode=OneWayToSource}" />  

查看模型:

Public ReadOnly Property RouteSheetRecordOperations As New ObservableCollection(Of RouteSheetRecordOperation)
Property SelectedRouteSheetRecordOperations As List(Of RouteSheetRecordOperation)
  Get
    Return _selectedRouteSheetRecordOperations
  End Get
  Set
    _selectedRouteSheetRecordOperations = Value
  End Set
End Property  

主要问题是在 SelectedRouteSheetRecordOperations 属性 的 setter 中,值始终为 Nothing(空)。

Binding 中删除 Mode=OneWayToSource:

<xctk:CheckComboBox DisplayMemberPath="Name"
                ItemsSource="{Binding RouteSheetRecordOperations, Mode=OneWay}"
                SelectedItemsOverride="{Binding SelectedRouteSheetRecordOperations}" />

另请注意,当您 select CheckComboBox 中的项目时,SelectedRouteSheetRecordOperations 属性 的 setter 不应被击中。一个项目应该被添加到源集合中,所以您也可以删除 setter 并且您可能想要 return 和 ObservableCollection(Of RouteSheetRecordOperation)

另请注意 属性 必须是 public

试试这个连同上面的 XAML 标记:

Private _selectedRouteSheetRecordOperations As New ObservableCollection(Of RouteSheetRecordOperation)
Public ReadOnly Property SelectedRouteSheetRecordOperations As ObservableCollection(Of RouteSheetRecordOperation)
Get
    Return _selectedRouteSheetRecordOperations
End Get
End Property