我只想在我的TextBox中允许正数作为用户输入。
如果我输入-10
并使用
<TextBox Text="{Binding Width, StringFormat={}{0:0.00;0.00}}" />
然后它总是显示正数,但背后的数据仍然是负数。
如何正确做到?
答案 0 :(得分:3)
有很多方法可以解决这个问题,例如OmegaMan's。但我的解决方案是根本不使用文本框。可悲的是,WPF从未被开箱即用的旋转盒/升级控件祝福,但extended WPFToolkit确实有一个。那么为什么要浪费你的时间来解析和处理所有令人讨厌的案件呢?让控制权重举。
<extToolkit:IntegerUpDown Value="{Binding Width}" Minimum="0"/>
完成
答案 1 :(得分:2)
由于验证规则强制执行该值,我建议还检查VM属性中的值以强制/转换它:
public string Width
{
get { return _width; }
set
{
int result;
int.TryParse(width, out result);
_width = (result < 0 ? result *-1 : result).ToString();
PropertyChanged("Width");
}
}