gpt4 book ai didi

wpf - 可为空的数据库属性,但删除内容时 texbox 仍显示红色边框

转载 作者:行者123 更新时间:2023-12-01 07:05:46 25 4
gpt4 key购买 nike

您好我将 WPF 文本框绑定(bind)到 Entity Framework 属性,如下所示:

<TextBox Grid.Column="1" Grid.Row="0" Margin="5,2" 
Text="{Binding Path=MyEntityObject.SizeLower, Mode=TwoWay}" />

它可以很好地绑定(bind)到属性,当我更改它时,它会按预期保存到数据库中。但是,如果我删除文本框的内容,我会在它周围出现红色错误边框。我没有任何验证器,所以我猜测 texbox 提示该值不可为空。但实际上数据库中的这个属性是可以为空的,所以我不明白为什么它会出错。

系统生成的EF属性定义如下:
<EdmScalarPropertyAttribute(EntityKeyProperty:=false, IsNullable:=true)>
<DataMemberAttribute()>
Public Property SizeLower() As Nullable(Of Global.System.Int64)
Get
Return _SizeLower
End Get
Set
OnSizeLowerChanging(value)
ReportPropertyChanging("SizeLower")
_SizeLower = StructuralObject.SetValidValue(value)
ReportPropertyChanged("SizeLower")
OnSizeLowerChanged()
End Set
End Property

Private _SizeLower As Nullable(Of Global.System.Int64)

有什么我想念的吗?我认为绑定(bind)系统能够确定一个属性是否可以为空,如果可以,则允许为空?

我怎样才能看到错误是什么?悬停似乎不起作用。

感谢您的任何建议。

====================================
附加信息

如果我全选并删除,然后更改焦点,则会出现验证框。这是之前和之后的屏幕截图。此外,我已经确认我可以手动将 NULL 放入数据库中以获取绑定(bind)属性,所以这不是问题。

拒绝。试图把图片放在这里,但我没有 10 分......!
这是一个非现场链接: CLICK HERE

最佳答案

您应该添加 TargetNullValue属性到您的绑定(bind):

<TextBox Grid.Column="1" Grid.Row="0" Margin="5,2" 
Text="{Binding Path=MyEntityObject.SizeLower,
Mode=TwoWay,
TargetNullValue=''}" />

这告诉绑定(bind)处理 MyEntityObject.SizeLower 中的空值显示为string.empty,设置时为null。

关于wpf - 可为空的数据库属性,但删除内容时 texbox 仍显示红色边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4322045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com