我可以在文本框中输入数字,但不允许我输入十进制值。请问这是为什么?

<TextBox Text="{Binding SebAmountPer, Mode=Twoway, UpdateSourceTrigger=PropertyChanged}" Grid.Column="1" Grid.Row="2" TextWrapping="Wrap"/>

public decimal? SebAmountPer
{
    get
    {
        return _seb.SEBAmountPer;
    }
    set
    {
        _seb.SEBAmountPer = value;
        OnPropertyChanged("SebAmountPer");
        OnPropertyChanged("SebTotal");
    }
}

最佳答案

便宜的解决方法(如果您仍然希望保留内置的验证并绑定到可为空的属性),是在绑定中添加一个小的Delay。这使您可以实际输入“小数点”,并在“延迟”后绑定,然后将值评估为正确。

例:

  <TextBox Text="{Binding SebAmountPer, UpdateSourceTrigger=PropertyChanged, TargetNullValue='', Delay=350}" Height="75" Width="300" TextWrapping="Wrap"/>

关于c# - TextBox不允许我输入小数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23228403/

10-09 04:41