BindlingList <t>和组合框</t>的问题

时间:2013-09-04 10:40:49

标签: c# binding combobox

我有以下代码:

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属性绑定到ComboBox,向Please select...添加默认条目BindingList

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

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

由于

1 个答案:

答案 0 :(得分:2)

BindingList只是一个包装器,主要是为了获取通知,围绕您的_model.Feature.Nouns作为基础项目列表(这就是AllowEdit, AllowNew, AllowRemove BindingList上的原因) :

如果您想要处理一个全新的列表(虽然我不确定它是BindingList的目的),请尝试:

_nouns = new BindingList<INoun>( _model.Feature.Nouns.Select(x=>x).ToList());