Как обновить источник данных datagridcomboboxColumn?

Я реализовал сетку данных с некоторыми столбцами сетки данных.

Одним из этих столбцов является DatagridComboboxColumn. Это имеет привязку источника элементов к списку ObservableCollection из моей модели представления.

Как обновить источник элементов, чтобы я мог видеть новый список в пользовательском интерфейсе? Список меняется от геттера, это означает, что я не могу использовать OnPropertyChange. Есть ли способ обновить пользовательский интерфейс из ViewModel или что здесь должно быть?

Свойство ViewModel:

    private ObservableCollection<string> usedHMDGroups = new ObservableCollection<string>();
    private ObservableCollection<string> startHMDGroups = new ObservableCollection<string>{
                "136b6405",
                "136b6406",
                "136b6407",
                "136b6408",
                "136b6409",
                "136b6410",
                "None"
    };
    public ObservableCollection<string> HMDGroups
    {
        get
        {
            ObservableCollection<string> HMDGroupList = new ObservableCollection<string>(startHMDGroups.Except(usedHMDGroups));
            return HMDGroupList;

        }
        set 
        {
            OnPropertyChange("HMDGroups");
            
        }
    }

DatagridComboBoxColumn из сетки данных:

                <DataGridComboBoxColumn x:Name="hmdComboCol" Header="HMD Group" 
                                    SelectedValueBinding="{Binding HMDGroup, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
                                    ItemsSource="{Binding Path=HMDGroups, Mode=TwoWay, Source={StaticResource ComboItems}}"/>

person BenjaminMadsen    schedule 02.07.2020    source источник
comment
Во-первых, использование ObservableCollection кажется бессмысленным, поскольку вы, по-видимому, никогда не добавляете и не удаляете элементы из/в существующий экземпляр коллекции. Затем, чтобы вызвать событие PropertyChanged, очевидно, должен быть вызван установщик свойств. В противном случае вы можете вызвать OnPropertyChanged из любого другого места в вашей модели представления. Затем свойство должно быть доступно только для чтения.   -  person Clemens    schedule 02.07.2020


Ответы (1)


Я узнал, что могу просто снова установить источник столбца в тот же список. Это снова будет использовать геттер.

hmdComboCol.ItemsSource = vhitems.HMDGroups;
person BenjaminMadsen    schedule 02.07.2020