我无法了解如何从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 中,值始终为无 (null(。
从Binding
中删除Mode=OneWayToSource
:
<xctk:CheckComboBox DisplayMemberPath="Name"
ItemsSource="{Binding RouteSheetRecordOperations, Mode=OneWay}"
SelectedItemsOverride="{Binding SelectedRouteSheetRecordOperations}" />
另请注意,当您在CheckComboBox
中选择项目时,SelectedRouteSheetRecordOperations
属性的二传手不应该被击中。应该将项目添加到源集合中,因此您不妨删除资源库,并且您可能希望返回一个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