当文本框的绑定设置为OneWayToSource时,WPF TargetNullValue返回值

时间:2011-03-01 15:29:23

标签: c# wpf c#-4.0 binding targetnullvalue

我有这个xaml文本框

<TextBox Text="{Binding ProdFilter.Min, Mode=OneWayToSource,
   UpdateSourceTrigger=PropertyChanged, TargetNullValue=''}"
   Width="50" DockPanel.Dock="Right" TabIndex="3" />

绑定到此属性:

        public double? Min
        {
            get { return min; }
            set
            {
                if (value == null)
                    value = 0;
                min = value;
                OnPropertyChanged("Min");
            }
        }

我遇到的问题是,当程序启动或用户清除文本时,文本框的文本设置为“0”。我不知道这种行为是否正确,因为我正在使用OneWayToSource,但我希望我的属性在文本为空时设置为null(并且文本保持为空!)

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:6)

这是因为即使绑定为OneWayToSource,WPF也会在设置后重新读取属性中的值。有关可能的解决方法,请参阅this question的答案。