我已经实现了一个带有一些datagrid列的datagrid。
这些列之一是DatagridComboboxColumn。那个项源绑定到了我的Viewmodel中的ObservableCollection列表。
如何更新itemsource,以便可以在UI上看到新列表?该列表正在从吸气剂更改,这意味着我不能使用OnPropertyChange。是否可以通过ViewModel更新UI,或者应该怎么做?
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");
}
}
datagrid的DatagridComboBoxColumn:
<DataGridComboBoxColumn x:Name="hmdComboCol" Header="HMD Group"
SelectedValueBinding="{Binding HMDGroup,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
ItemsSource="{Binding Path=HMDGroups,Source={StaticResource ComboItems}}"/>