将地址保存到observableCollection中的第一个位置?

时间:2013-09-18 18:17:13

标签: c# wpf observablecollection

我有一个名为AddressList的ObservableCollection Addresses.I用Add填充AdddressList 一个名为CreateAddressBinding的方法中的地址。地址具有不同的属性,其中一个是IsDefault。对于其中一个地址,此属性为true,其余为false。我试图分配默认地址,其地址的IsDefault属性为true到AddressList的第一个位置。

部分代码:

     foreach (var address in Addresses)
        {

            AddressList.Add(address);
        }

3 个答案:

答案 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);
        }
    }
}

这将在集合的顶部添加默认地址。