所以我有一个ICollectionView,它被设置为基于ComboBox的自定义控件的ItemsSource。
我可以将它设置得很好但我无法使用新项目更新它,因为我得到了这个:
使用ItemsSource时,操作无效。访问和修改 而使用ItemsControl.ItemsSource的元素。
通过
尝试时viewModel.TheICollectionView = new CollectionView(CollectionViewSource.GetDefaultView(viewModel.OriginalList));
只要OriginalList发生了变化,它就会被EventHandler调用。
ItemsSource设置如下:
<controls:CustomComboBox ItemsSource="{Binding Path=TheICollectionView}"/>
然后在自定义控件中我有事件处理程序OnItemsSourceChanged
我在哪里:
TheComboBox.Items.Clear();
TheComboBox.ItemsSource = _itemsSource;
错误在Items.Clear()
此错误的其他答案没有帮助。
答案 0 :(得分:0)
只需将项目添加到视图模型的OriginalList
集合中:
public ICollectionView TheICollectionView { get; set; }
public ObservableCollection<int> OriginalList { get; set; } = new ObservableCollection<int>();
public void Method()
{
TheICollectionView = new CollectionView(CollectionViewSource.GetDefaultView(OriginalList));
...
OriginalList.Add(1);
}
设置Items
属性后,您无法不将新项添加到ComboBox的ItemsSource
集合中。