【问题标题】:ObseservableCollection not getting populated correctly using foreach (C#)使用 foreach (C#) 未正确填充 ObseservableCollection
【发布时间】:2020-05-02 02:06:51
【问题描述】:

我使用数组和 foreach 来填充列表。但是 WPF GUI 只显示了数组中的最后一项,而不是全部。绑定是正确的,我的代码肯定有逻辑错误:

public ObservableCollection<Client> Clients { get; set; }

string[] clients = { 
            "XYZ.company.server",
            "ABC.company.server"
}

foreach (string item in clients)
{
    Client client = new Client(item);
    Clients = new ObservableCollection<Client>();
    Clients.Add(client);
}

this.DataContext = this;

Gui 只在 ListView 上显示“ABC.company.server”。

【问题讨论】:

  • 您在每次循环迭代中重新创建 Clients。将Clients = new ObservableCollection&lt;Client&gt;()放在循环之前

标签: c# arrays list foreach observablecollection


【解决方案1】:

您需要在循环之前声明集合。因此,在循环您的收藏时,将添加来自 foreach 循环的项目。

Clients = new ObservableCollection<Client>();
foreach (string item in clients)
{
    Client client = new Client(item);

    Clients.Add(client);

}

否则,每次循环都会重新创建您的集合,并且所有之前的迭代项都不会添加到新创建的集合中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    相关资源
    最近更新 更多