无法在CheckComboBox中设置所选项的初始状态

Jat*_*tin 10 wpf xceed wpf-extended-toolkit

我正在尝试使用Xceed CheckComboBox,除了一个小问题之外它运行良好.最初加载CheckComboBox时,CheckComboBox的ToggleButton部分中正确显示所选项List,但不检查表示这些项的复选框.这是我正在使用的代码

XAML

<xctk:CheckComboBox x:Name="_combo"  Grid.Row="2" Grid.Column="1" 
                 ItemsSource="{Binding RoomFacilities}" 
                 HorizontalAlignment="Center" 
                 VerticalAlignment="Center"
                 DisplayMemberPath="FacilityName" 
                 SelectedItemsOverride="{Binding SelectedFaclities}" 
                    />
Run Code Online (Sandbox Code Playgroud)

查看模型

public class RoomBandUpdateViewModel : Screen, IHandle<RecordChanged<RoomFacility>>,
                                               IHandle<RecordDeleted<RoomFacility>> {
    private ObservableCollection<RoomFacility> _roomFacilities;
    public ObservableCollection<RoomFacility> RoomFacilities {
        get { return _roomFacilities; }
        set { _roomFacilities = value; NotifyOfPropertyChange(() => RoomFacilities); }
    }

    private ObservableCollection<RoomFacility> _selectedFacilities;
    public ObservableCollection<RoomFacility> SelectedFaclities {
        get { return _selectedFacilities; }
        set { _selectedFacilities = value; NotifyOfPropertyChange(() => SelectedFaclities); }
    }

    protected override void OnActivate() {
        SelectedFaclities = new ObservableCollection<RoomFacility>(RoomBand.Facilities);
        RoomFacilities = new ObservableCollection<RoomFacility>(facilityService.GetAll());
    }
}
Run Code Online (Sandbox Code Playgroud)

我想知道为什么,当在视图模型中正确设置SelectedFacilities时,不会根据SelectedFacilities中的项目检查CheckComboBox的复选框.有趣的是,CheckComboBox的Toggle Button部分正确显示逗号分隔列表中的SelectedFacilities.

Tom*_*Tom 0

如果您将集合实例化到类的构造函数中,则该属性尚未绑定到您的组件,因此您的组件不会触发 ViewModel 的 PropertyChanged 事件。

可观察集合 Add() 方法不会触发 PropertyChanged 事件,但会触发 CollectionChanged 事件。

希望这对您有帮助