1

我有以下代码:

private BindingList<INoun> _nouns;

private BindingList<INoun> Nouns
{
    get
    {
        if ( _nouns == null )
        {
            _nouns = new BindingList<INoun>( _model.Feature.Nouns );
            _nouns.Insert( 0, new Noun( -1, "Please select..." ) );
        }
        return _nouns;
    }
}


public interface INoun
{
    int Id;
    string Text;
}

Nouns属性绑定到 a ComboBox,将默认条目添加Please select...BindingList.

我在这里遇到的问题是该Please select...条目被意外添加到基础_model.Feature.Nouns集合中,我不希望这种情况发生。

无论如何我可以将Please select...默认项添加到 ComboBox 而不将其添加到基础集合中吗?

谢谢

4

1 回答 1

2

BindingList只是一个包装器,主要是为了获取通知,围绕你的_model.Feature.Nouns它仍然是底层项目列表(这就是你有AllowEdit, AllowNew, AllowRemoveon的原因BindingList):

如果您想处理全新的列表(尽管我不确定这是 BindingList 的目的),请尝试:

_nouns = new BindingList<INoun>( _model.Feature.Nouns.Select(x=>x).ToList());
于 2013-09-04T11:11:47.717 回答