【发布时间】:2018-09-23 23:22:09
【问题描述】:
我是 XAML 和 C# 的新手。我有一个带有列表框的简单显示,该列表框通过 ArrayList 中的元素填充。当我向列表中添加项目时,我希望更新列表框,以便它也显示新值。
我该怎么做呢? 看到有人用过:
listBox.InvalidateArrange();
listBox.UpdateLayout();
但我无法让它为我工作。
任何建议将不胜感激!
【问题讨论】:
-
不要使用 ArrayList (对于任何事情,但尤其不能用于此),请使用
ObservableCollection。当您将项目添加到 ObservableCollection 时,ListBox 将自动添加它们,而无需您做进一步的工作。如果您想修改集合中项目的属性并更新 UI,则集合中的项目需要实现INotifyPropertyChanged。 -
感谢 @EdPlunkett 和 Andy 的建议。切换到 Observable 集合解决了我的问题。