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