所以我有这个组合框,其中ItemsSource被设置为一个对象列表。
之后我要做的是更改一个特定项目(列表中的第一个)的显示值,因为此标签在某些情况下不适合上下文,但在其他情况下则适用。
到目前为止,我发现您可以使用添加方法添加项目,插入使用插入 >方法,并使用 RemoveAt 删除。
但你如何更新呢?我知道我之后可以使用RemoveAt和Insert,但是它会有点劳力密集,而且我必须用它的所有值重新创建对象......
有什么想法吗?
答案 0 :(得分:0)
替换“对象列表”中的项目:
myList[0] = new MyObject("Another display text").
为此(以及Add
,Remove
等)工作,您的列表必须是ObservableCollection<T>
或其他任何实现INotifyCollectionChanged
的内容。
或修改项目本身:
myList[0].DisplayText = "Another display text";
为了实现这一点,您的MyObject
类必须实现INotifyPropertyChanged
,您必须在设置PropertyChanged
属性时引发DisplayText
事件,并且您必须正确设置DisplayMemberPath
的{{1}}或ItemTemplate
。
请查看MVVM pattern了解详情。