无法使用 MVVM 通过 Xceed CheckListBox 获取 SelectedItems
Unable to get SelectedItems through Xceed CheckListBox using MVVM
我一直在为某些 UI 组件使用 wpf xceed 第三方库。我真的很喜欢 CheckListBox 在屏幕上的显示方式。但是我无法将 selectedItems 绑定到视图模型中的任何 属性(setter 从不触发)。这是代码-
我正在使用数据提供程序从枚举中获取值 -
<UserControl.Resources>
<ObjectDataProvider MethodName="GetValues" ObjectType="{x:Type sys:Enum}" x:Key="DeviceClassDataProvider">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="Model:HANDeviceClass" />
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
然后控件被声明成这样-
<ext:CheckListBox Focusable="False" SelectedMemberPath="{Binding IsChecked, UpdateSourceTrigger=PropertyChanged}" SelectedItemsOverride="{Binding SelectedDeviceGroups, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding SelectedItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Grid.Row="1" Grid.RowSpan="7" Grid.Column="4" Padding="5" BorderThickness="0.8" BorderBrush="Gray" ItemsSource="{Binding Source={StaticResource DeviceClassDataProvider}}"/>
如何在它的视图模型中获取选定的项目?
任何快速帮助将不胜感激!
提前致谢
只要 SelectedDeviceGroups
是一个 public 属性 那个 returns 一个 ICollection<HANDeviceClass>
:
public ICollection<HANDeviceClass> SelectedDeviceGroups { get; } = new ObservableCollection<HANDeviceClass>();
XAML:
<ext:CheckListBox ItemsSource="{Binding Source={StaticResource DeviceClassDataProvider}}"
SelectedItemsOverride="{Binding SelectedDeviceGroups}" />
<TextBlock Text="{Binding SelectedDeviceGroups.Count}" />
项目将在您分别选中和取消选中项目时添加到源集合和从源集合中删除。
我一直在为某些 UI 组件使用 wpf xceed 第三方库。我真的很喜欢 CheckListBox 在屏幕上的显示方式。但是我无法将 selectedItems 绑定到视图模型中的任何 属性(setter 从不触发)。这是代码-
我正在使用数据提供程序从枚举中获取值 -
<UserControl.Resources>
<ObjectDataProvider MethodName="GetValues" ObjectType="{x:Type sys:Enum}" x:Key="DeviceClassDataProvider">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="Model:HANDeviceClass" />
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
然后控件被声明成这样-
<ext:CheckListBox Focusable="False" SelectedMemberPath="{Binding IsChecked, UpdateSourceTrigger=PropertyChanged}" SelectedItemsOverride="{Binding SelectedDeviceGroups, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding SelectedItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Grid.Row="1" Grid.RowSpan="7" Grid.Column="4" Padding="5" BorderThickness="0.8" BorderBrush="Gray" ItemsSource="{Binding Source={StaticResource DeviceClassDataProvider}}"/>
如何在它的视图模型中获取选定的项目?
任何快速帮助将不胜感激!
提前致谢
只要 SelectedDeviceGroups
是一个 public 属性 那个 returns 一个 ICollection<HANDeviceClass>
:
public ICollection<HANDeviceClass> SelectedDeviceGroups { get; } = new ObservableCollection<HANDeviceClass>();
XAML:
<ext:CheckListBox ItemsSource="{Binding Source={StaticResource DeviceClassDataProvider}}"
SelectedItemsOverride="{Binding SelectedDeviceGroups}" />
<TextBlock Text="{Binding SelectedDeviceGroups.Count}" />
项目将在您分别选中和取消选中项目时添加到源集合和从源集合中删除。