2012-11-21 32 views
0

所以我有这个组合框,其中ItemsSource被设置为对象列表。不添加或删除,但在Silverlight中编辑组合框项目?

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

到目前为止,我发现你可以使用使用插入方法添加方法,插入一个添加一个项目,删除一个使用RemoveAt移除

但你怎么更新一?我知道我以后可以使用RemoveAt和Insert,但是这样会花费大量的人力,再加上我不得不重新创建这个对象的所有值...

任何想法?

回答

0

要么更换项目在“对象列表”:

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

对于这一点(AddRemove等)的工作,你的清单必须是一个ObservableCollection<T>或任何其他实现INotifyCollectionChanged

或者修改项目本身:

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

对于这个工作,你MyObject类必须实现INotifyPropertyChanged,你必须当DisplayText属性设置为提高PropertyChanged事件,您必须正确设置您的ComboBoxDisplayMemberPathItemTemplate

查看MVVM pattern了解更多信息。

+0

谢谢。在将它指定为组合框的ItemsSource之前更改对象列表确实比较简单 – SylvainB