ObseservableCollection无法使用foreach(C#)正确填充

问题描述 投票:0回答:1

我使用一个数组,并使用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”。

c# arrays list foreach observablecollection
1个回答
1
投票

您需要在循环之前声明collection。否则,您的收藏集只有一个项目,因为您只是添加到新创建的收藏集中的最后一个项目:

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

    Clients.Add(client);

}
© www.soinside.com 2019 - 2024. All rights reserved.