0

所以我有这个组合框,其中 ItemsSource 设置为对象列表。

之后我想做的是更改一个特定项目(列表中的第一个项目)的显示值,因为此标签在某些情况下不适合上下文,但在其他情况下适合。

到目前为止,我发现您可以使用Add方法添加一个项目,使用Insert方法插入一个项目,然后使用RemoveAt删除一个项目。

但是你如何更新一个?我知道我可以在之后使用 RemoveAt 和 Insert ,但这会有点费力,而且我必须用它的所有值重新创建对象......

有任何想法吗?

4

1 回答 1

0

替换“对象列表”的一个项目:

myList[0] = new MyObject("Another display text").

要使这个(和AddRemove)起作用,您的列表必须是一个ObservableCollection<T>或任何其他实现INotifyCollectionChanged.

或者修改项目本身:

myList[0].DisplayText = "Another display text";

为此,您的MyObject类必须实现INotifyPropertyChanged,您必须在设置属性PropertyChanged时引发事件DisplayText,并且您必须正确设置您的DisplayMemberPath或。ItemTemplateComboBox

查看MVVM 模式以获取更多信息。

于 2012-11-21T11:01:16.193 回答