0

我有一个名为 AddressList of Addresses 的 ObservableCollection。我在一个名为 CreateAddressBinding 的方法中使用地址填充 AdddressList。地址具有不同的属性,其中之一是 IsDefault。对于其中一个地址,此属性为真,其余地址为假。我正在尝试将默认地址分配给 AddressList 的第一个位置,该地址的 IsDefault 属性为 true。

部分代码:

     foreach (var address in Addresses)
        {

            AddressList.Add(address);
        }
4

3 回答 3

2
foreach(var address in Addresses)
{
    if(address.IsDefault)
    {
        AddressList.Insert(0, address);
        continue;
    }
    AddressList.Add(address);
}
于 2013-09-18T18:26:13.333 回答
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]);
于 2013-09-18T18:18:43.943 回答
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);
        }
    }
}

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

于 2013-09-18T18:53:41.500 回答