[英]Empty value in datagridview combobox dropdown for nullable type
我有一个可以为空的enum绑定到一个组合框细胞。 comboxbox样式设置为下拉列表。
由于我的枚举可以为空,我期待Dropdown有一个空值,但似乎并非如此。
除了在枚举中添加“NULL”值并跟踪它之外,是否有任何内置的强制执行方式?
据我所知,Windows Forms 绑定没有像WPF TargetNullValue属性那样的东西,所以唯一可行的方法是处理Format和Parse事件:
Binding binding = new Binding // ..
comboBox.DataBindings.Add(binding);
binding.Format += (sender, eventArgs) =>
{
if (eventArgs.Value == null)
eventArgs.Value = "NULL";
else
eventArgs.Value = eventArgs.Value.ToString();
}
binding.Parse += (sender, eventArgs) =>
{
if (eventArgs.Value == "NULL")
eventArgs.Value = null;
else
eventArgs.Value = Enum.Parse(typeof(MyEnum), eventArgs.Value.ToString());
}
在DataSource中使用DBNull.Value:
var col = new DataGridViewComboBoxColumn();
col.DataSource = new Object[] { DBNull.Value, MyEnum.Value1, MyEnum.Value2 };
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.