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

ObseservableCollection not getting populated correctly using foreach (C#)

我使用数组和 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"。

你需要在循环前声明collection。因此,在循环时,您的 collection 将添加来自 foreach 循环的项目。

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

    Clients.Add(client);

}

否则,您的 collection 将在每次循环中重新创建,并且不会将所有先前迭代的项目添加到新创建的 collection。