2012-08-13 44 views
1

嗨我有一个组合填充3个选项,其值为Guid的窗体窗体,并有一个DataBinding选定的对象。C#组合DataBinding空Guid节目00000000-0000-0000-0000-000000000000

EmployerMemberDefault item = EmployerMemberDefault(); 
item.GroupUid = Guid.Empty; 

cbGroupEmployer.DataBindings.Clear(); 
cbGroupEmployer.DataBindings.Add("Value", item, "GroupUid"); 

当我创建一个新对象时,数据绑定到组合的属性被设置为Guid.Empty。如果我编译并运行,当我创建新对象时,我在组合中看到“00000000-0000-0000-0000-000000000000”。有什么办法可以看到组合中的空文本而不是Guid.Empty值?

谢谢。

+1

['Guid.Empty'](http://msdn.microsoft.com/en-us/library/system.guid.empty.aspx)是一个guid,其值全为零。当你ToString()这个(当它显示在组合中时会发生什么),你会得到你所拥有的。如果您希望显示为空字符串,则需要专门处理此值。 – adrianbanks 2012-08-13 17:29:53

+0

ComboBox没有“Value”属性。 – LarsTech 2012-08-13 17:45:30

回答

1

变化从Guid源属性Guid?/Nullable<Guid>我还没有做过的Guid这一点,但它与int/DateTime和其他类型的不允许空工作。

1

“00000000-0000-0000-0000-000000000000”是Guid.ToString返回的值。为了展示不同的东西,你必须以某种方式来翻译这个价值 - 也就是说。绑定到其他存储guid并翻译它的东西。

+1

确实,为简单+1。 OP可以有一个自定义类'MyGuid',它覆盖'ToString'来测试它是否等于'Guid.Empty',然后返回'String.Empty'或类似的东西。虽然有点矫枉过正。 – 2012-08-13 17:33:05

+0

看起来像一个合理的实施... – 2012-08-13 17:34:53