5

我有这个 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(并且文本保持为空!)

有任何想法吗?谢谢!

4

1 回答 1

6

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

于 2011-03-01T15:58:13.303 回答