Wpf 清除文本框不会将绑定设置为null

Wpf 清除文本框不会将绑定设置为null,wpf,data-binding,textbox,null,Wpf,Data Binding,Textbox,Null,在可为空的DB字段上,我很难将空文本框设置为空 XAML 当我在其中输入任何值时,绑定正常,输入的值被传递 当我不使用空值时,会传递空值 如果我从文本框中删除该值,则传递的值是文本框的原始值,并且用户界面不会收到更改的通知grrrrrrrr 我花了很长时间查看选项 除了将代码放在每个可空字段的ContextChanged后面,我看不出这样做的效率 提前感谢: ps.已查看TargetNullValue,但未获得成功 VisualStudio2008-SP1-.NET3.5考虑使用。您应该能够

在可为空的DB字段上,我很难将空文本框设置为空

XAML


当我在其中输入任何值时,绑定正常,输入的值被传递
当我不使用空值时,会传递空值
如果我从文本框中删除该值,则传递的值是文本框的原始值,并且用户界面不会收到更改的通知
grrrrrrrr

我花了很长时间查看选项 除了将代码放在每个可空字段的ContextChanged后面,我看不出这样做的效率

提前感谢:

ps.已查看TargetNullValue,但未获得成功


VisualStudio2008-SP1-.NET3.5考虑使用。您应该能够实现ConvertBack方法将空字符串转换为空字符串。

将绑定的属性
TargetNullValue
设置为
String.empty

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

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

对于我来说,只有转换器工作: 这是


xmlns:sys=“clr namespace:System;assembly=mscorlib”我尝试了此操作,但不断出现错误24无法从程序集“Microsoft.Windows.Design.Metadata.ProvideMetadataAttribute”加载类型“Microsoft.Windows.Design.Extensibility,Version=3.5.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”。行“1”位置“6680”。我不知道。但是如果我是你,我会尝试只测试一个文本框而不使用其他定义;只是绑定和TargetNullValue。这种方法可以帮助您找到异常的来源。尝试一起删除StringFormat,但我仍然得到相同的消息。------这就是我所拥有的并且仍然得到了上面的例外奥尼·唐诺:(我希望我能帮助你转换到一个空格,因为一个空字符串并没有因为某种原因触发属性更改事件。谢谢你的帮助,我会在所有需要的地方实现。
<TextBox Text="{Binding TargetNullValue={x:Static sys:String.Empty}}"/>
StringFormat={}{0:C}
public class NullableConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
       return value == null ? string.Empty : String.Format(culture, "{0}", value);
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
       return string.IsNullOrEmpty(String.Format(culture, "{0}", value)) ? null : value;
    }
}