日期:2014-05-17  浏览次数:21014 次

WPF,绑定到null值的情况

<TextBox Text="{Binding Path=Email, TargetNullValue=无邮箱}" HorizontalAlignment="Left" Height="21" Margin="89,140,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="169"/>


从数据库中读取数据,此TextBox绑定到邮箱列,但是数据库中邮箱值为null时,我设置了TargetNullValue为无邮箱,但是最好外为什么没有显示呢?

------解决方案--------------------
我这里试了下可以显示“无邮箱”,没有你说的现象,把你的代码贴上来看下吧。
注意只有Email=null才显示"无邮箱",没有Email这个属性或者空串都不会显示。
------解决方案--------------------
或者DBNull.Value也不会显示
------解决方案--------------------
这句:reader["电子邮件"].ToString()
ToString()不会返回null,只会返回空串
改成: reader["电子邮件"] as string

------解决方案--------------------
数据库中要改成NULL,不能是空白(空字符串)
------解决方案--------------------
select *,isnull(Email,'') as Email from 表名

将邮箱字段为null时转换成'',这样应该可以
------解决方案--------------------
引用:
Quote: 引用:

数据库中要改成NULL,不能是空白(空字符串)

数据库中是写的NULL,但是不显示,是不是因为DBNull.Value的原因 ?

对,不然你的reader["电子邮件"].ToString()方法直接报错(未将对象引用设置到对象实例