我有一个名为AddressList的ObservableCollection Addresses.I用Add填充AdddressList 一个名为CreateAddressBinding的方法中的地址。地址具有不同的属性,其中一个是IsDefault。对于其中一个地址,此属性为true,其余为false。我试图分配默认地址,其地址的IsDefault属性为true到AddressList的第一个位置。
部分代码:
foreach (var address in Addresses)
{
AddressList.Add(address);
}
答案 0 :(得分:2)
foreach(var address in Addresses)
{
if(address.IsDefault)
{
AddressList.Insert(0, address);
continue;
}
AddressList.Add(address);
}
答案 1 :(得分:0)
在IsDefault
循环中添加foreach
地址以外的所有地址,然后添加IsDefault
作为第一项。
试
foreach (var address in Addresses)
{
if(!address.IsDefault)
{
AddressList.Add(address);
}
}
AddressList.InsertItem(0, Addresses.Where(x => x.IsDefault).ToList()[0]);
答案 2 :(得分:0)
一种不错的方法是创建一个属性来访问默认地址。以下是地址适用于用户的示例。
public class User
{
public ObservableCollection<Address> Addresses;
public Address DefaultAddress
{
get
{
return Addresses.Single(a => a.IsDefault);
}
set
{
Addresses.Remove(DefaultAddress);
Addresses.Insert(0, value);
}
}
}
这将在集合的顶部添加默认地址。