我只想让用户在我的TextBox中输入正数。
如果我输入-10并使用
<TextBox Text="{Binding Width, StringFormat={}{0:0.00;0.00}}" />然后它总是显示正数,但后面的数据仍然是负数。
怎样做才是正确的?
发布于 2015-06-18 03:17:13
有很多方法可以解决这个问题,比如OmegaMan的方法,但我的解决方案是根本不使用textbox。遗憾的是,WPF从来没有开箱即用的spinbox/updown控件,但extended WPFToolkit确实有一个。那么,为什么要浪费时间来解析和处理所有令人讨厌的情况呢?让控件来做繁重的工作。
<extToolkit:IntegerUpDown Value="{Binding Width}" Minimum="0"/>完成
发布于 2015-06-18 02:50:37
由于验证规则强制该值为正,因此我建议同时检查VM属性中的值,以强制/转换该值:
public string Width
{
get { return _width; }
set
{
int result;
int.TryParse(width, out result);
_width = (result < 0 ? result *-1 : result).ToString();
PropertyChanged("Width");
}
}https://stackoverflow.com/questions/30898015
复制相似问题