wpf - 清除文本框不会将绑定(bind)设置为 null

标签 wpf data-binding textbox null

我很难在可为空的 DB 字段上将空的 TextBox 设置为空。

XAML

<y:TextBox Text="{Binding Year1Cost, Mode=TwoWay,  
     UpdateSourceTrigger=PropertyChanged,   
     NotifyOnValidationError=True,   
     ValidatesOnDataErrors=True,   
     ValidatesOnExceptions=True,  
     StringFormat=\{0:c\}}" Grid.Row="3" Grid.Column="1" />

当我在其中输入任何值时,绑定(bind)很好并且输入的值被传递
当我单独留下一个空值时,会传递一个空值
如果我从 TextBox 中删除值,则传递的值是 Textbox 的原始值,并且 UI 不会通知更改 Grrrrrrrrrrrrrrrr
我花了很长时间检查选项
只是将代码放在每个可为空字段的 OnTextChanged 后面,我看不到这样做的效率。

提前致谢:

附言。看过 TargetNullValue 没有成功

Visual Studio 2008 - SP1 - .Net 3.5

最佳答案

设置属性TargetNullValue绑定(bind)到 String.Empty :

<TextBox Text="{Binding TargetNullValue={x:Static sys:String.Empty}}"/>

我试过了,它对我有用。

如果我没有错(如果我错了,请原谅我),你应该像这样设置属性 StringFormat:
StringFormat={}{0:C}

这甚至可能是您遇到异常的原因。

关于wpf - 清除文本框不会将绑定(bind)设置为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2062686/

相关文章:

javascript - 数据更改时 Angular 链接不会触发

C# 在工具箱中包含派生控件

c# - 环绕和大量数据时 TextBox 性能不佳

mysql - 机器人筛选网站的每个页面

c# - 比较数据网格中同一行的两个单元格

wpf - 向 WPF 控件工具提示添加条件可见性

c# - 文本框中的换行符

wpf - 在 WPF ViewModel 中将对象(不是实体,不是框架)标记为脏

android - 在 Fragment 的布局中使用 Activity ViewModel 和数据绑定(bind)

wpf - 如何在 MVVM 中的一个 StackPanel 中动态设置 Extenders 内的 3 个 DataGrids 的高度?