有没有办法通过不删除和添加 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 中删除小时并添加秒?

有没有办法删除添加到 sqitch 的迁移?

使用 MVVM 将新项目添加到 TabControl ItemSsource 时选择最后一个 TabItem

将新项目添加到绑定的 ItemsSource 时,WinUI 3 UWP TabView 不显示新选项卡