在 XAML 中使用列表框时更新/刷新显示

Posted

技术标签:

【中文标题】在 XAML 中使用列表框时更新/刷新显示【英文标题】:Update/Refresh display when using Listbox in XAML 【发布时间】:2018-09-23 23:22:09 【问题描述】:

我是 XAML 和 C# 的新手。我有一个带有列表框的简单显示,该列表框通过 ArrayList 中的元素填充。当我向列表中添加项目时,我希望更新列表框,以便它也显示新值。

我该怎么做呢? 看到有人用过:

 listBox.InvalidateArrange();
 listBox.UpdateLayout();

但我无法让它为我工作。

任何建议将不胜感激!

【问题讨论】:

不要使用 ArrayList (对于任何事情,但尤其不能用于此),请使用 ObservableCollection。当您将项目添加到 ObservableCollection 时,ListBox 将自动添加它们,而无需您做进一步的工作。如果您想修改集合中项目的属性并更新 UI,则集合中的项目需要实现 INotifyPropertyChanged 是的。看看:social.technet.microsoft.com/wiki/contents/articles/… 感谢 @EdPlunkett 和 Andy 的建议。切换到 Observable 集合解决了我的问题。 【参考方案1】:

感谢 Ed Plunkett 和 Andy 在 cmets 中的建议,我能够通过从 ArrayList 切换到 ObservableCollection 来解决我的问题。

因此,每次添加新条目时,ListBox 都会立即更新。

【讨论】:

以上是关于在 XAML 中使用列表框时更新/刷新显示的主要内容,如果未能解决你的问题,请参考以下文章

wpf : 绑定到另一个 xaml 文件中的控件

WPF 列表框动态填充 - 如何让它刷新?

无法更新子项列表框

支持除列表视图或列表框之外的数据绑定的 XAML 控件

使用 jQuery 表单规则显示文本框时验证文本框

选择组合框时设置文本框的属性 WPF XAML