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