0

我有一个以前的列表Property Grid,我想消除通过按钮添加的可能性 - 添加。

但我希望能够编辑已经存在的数据。

我的列表:

    private List<Pos> _position = new List<Pos>();

    public List<Pos> Position
    {
        get { return _position; }
        set
        {
            _position = value;
            NotifyPropertyChanged("Position");
        }
    }

位置:

public class Pos
{
    public string Name { get; set; }
    public double Postion { get; set; }

    public Pos()
        : this(null, Double.NaN)
    {

    }

    public Pos(string name, double postion)
    {
        this.Name = name;
        this.Postion = postion;
    }
}

我试图把[ReadOnly(true)]上面的列表,它仍然提供添加的选项。

有谁知道怎么做?

4

1 回答 1

0

我取消了添加/删除的选项,如下所示:

我创建了一个通用类:

public class PosList<T> : List<T>, ICollection<T>, IList
{

    public ValuesList(IEnumerable<T> items) : base(items) { }

    bool ICollection<T>.IsReadOnly { get { return true; } }

    bool IList.IsReadOnly { get { return true; } }

}

这提供了在代码中添加/删除的可能性,但不能通过集合编辑器。

采用:

private PosList<Pos> _position = new PosList<Pos>(new List<Pos>());

public PosList<Pos> Position
{
    get { return _position; }
    set
    {
        _position = value;
        NotifyPropertyChanged("Position");
    }
}
于 2013-04-09T09:53:12.640 回答