我有以下代码:
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而不将其添加到底层集合中吗?
由于
答案 0 :(得分:2)
BindingList
只是一个包装器,主要是为了获取通知,围绕您的_model.Feature.Nouns
作为基础项目列表(这就是AllowEdit, AllowNew, AllowRemove
BindingList
上的原因) :
如果您想要处理一个全新的列表(虽然我不确定它是BindingList的目的),请尝试:
_nouns = new BindingList<INoun>( _model.Feature.Nouns.Select(x=>x).ToList());