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

Mar*_*oll 5 c# wpf binding targetnullvalue c#-4.0

我有这个xaml文本框

<TextBox Text="{Binding ProdFilter.Min, Mode=OneWayToSource,
   UpdateSourceTrigger=PropertyChanged, TargetNullValue=''}"
   Width="50" DockPanel.Dock="Right" TabIndex="3" />
Run Code Online (Sandbox Code Playgroud)

绑定到此属性:

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

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

有任何想法吗?谢谢!

Pav*_*kov 6

这是因为WPF在设置它后重新读取属性值,即使绑定是OneWayToSource.请参阅此问题的答案以获取可能的解决方法.