我已经实现了一个带有一些数据网格列的数据网格。
其中一列是 DatagridComboboxColumn。这已将itemsource绑定到我的Viewmodel中的ObservableCollection列表。
如何更新项源,以便我可以在 UI 上看到新列表?列表正在从getter更改,这意味着我无法使用OnPropertyChange。有没有办法从ViewModel更新UI,或者应该怎么走?
视图模型属性:
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 from datagrid:
<DataGridComboBoxColumn x:Name="hmdComboCol" Header="HMD Group"
SelectedValueBinding="{Binding HMDGroup, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
ItemsSource="{Binding Path=HMDGroups, Mode=TwoWay, Source={StaticResource ComboItems}}"/>
我发现,我可以再次将列的itemsource设置为同一列表。 这将再次使用吸气剂。
hmdComboCol.ItemsSource = vhitems.HMDGroups;