有没有办法通过不删除和添加 ItemsSource 来更新 ListBox 的项目? [关闭]
Posted
技术标签:
【中文标题】有没有办法通过不删除和添加 ItemsSource 来更新 ListBox 的项目? [关闭]【英文标题】:Is there any way to update the Items of a ListBox by not removing and adding the ItemsSource? [closed] 【发布时间】:2021-06-04 01:43:42 【问题描述】:我正在将项目添加到我的列表框,但每当我想添加它们时,我需要删除并添加新的 itemsource,有没有办法让列表框自动更新,所以我不需要删除和添加 ItemsSource?谢谢!
我目前正在使用 ObservableCollection。
【问题讨论】:
你的问题没有意义。如果您使用的是ObservableCollection
,那么您将它分配(或绑定)一次给 ItemsSource 就可以了。通过在 ObservableCollection 实例中添加或删除项目来执行更新。
@Peregrine 问题是当我将项目添加到我的列表时没有任何更新,这就是我提出这个问题的原因。
那么请向我们展示您的代码 - 否则无法发表评论。
【参考方案1】:
我认为您误解了Observable Collection
的概念,因为它提供的正是您需要的功能。
Observable Collection 已经内置了刷新 UI 等功能,这意味着当您从后面的代码或 ViewModel 更新集合时,UI 也会更新。 有用链接:What is the use of ObservableCollection in .net?
【讨论】:
【参考方案2】:您可以使用数据绑定绑定到该集合,然后让列表框自动填充其中的任何内容。这将是一个勾选复选框的列表框,其中包含“wow”作为文本,无论集合中有多少。
<ListBox Name="testList" ItemsSource="Binding CollectionName" >
<ListBox.ItemTemplate>
<DataTemplate>
<CheckBox IsChecked="true">
<TextBlock Text="Binding Content"/>
</CheckBox>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
public class ItemInCollection
public string Content = "wow";
【讨论】:
以上是关于有没有办法通过不删除和添加 ItemsSource 来更新 ListBox 的项目? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
System.Controls.ComboBox - 如何让它添加其 Itemssource 中不存在的项目?
有没有办法在不删除视图并重新添加的情况下更新 StackView 中的视图?
有没有办法在 UIDatePicker 中删除小时并添加秒?