8 c# user-interface controls combobox datasource
我有一个ComboBox,其项目使用DataSource属性设置.DataSource是自定义对象的集合(具有字符串属性'Value'和int属性'Id').在初始化控件中,我将DisplayMember设置为Value,将ValueMember设置为Id.现在我试着通过调用清除DataSource,
myComboBox.DataSource = null;
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我的DisplayMember会自动重置为"".我正确清理DataSource吗?这是我应该表现的方式吗?
我可以重现它......这不是我所期望的,但看起来你只需要DisplayMember稍后设置背面即可。
从 Reflector 来看,这是故意的:
if (value == null)
{
this.DisplayMember = "";
}
Run Code Online (Sandbox Code Playgroud)
不确定背后的原因,但简单地说:
string oldDisplayMember = cbo.DisplayMember;
cbo.DataSource = null;
cbo.DisplayMember = oldDisplayMember;
Run Code Online (Sandbox Code Playgroud)
不漂亮,但它会起作用。
| 归档时间: |
|
| 查看次数: |
2856 次 |
| 最近记录: |