首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF StringFormat仅允许正数

问WPF StringFormat仅允许正数
EN

Stack Overflow用户
提问于 2015-06-18 01:07:03
回答 2查看 2.3K关注 0票数 3

我只想让用户在我的TextBox中输入正数。

如果我输入-10并使用

代码语言:javascript
复制
<TextBox Text="{Binding Width, StringFormat={}{0:0.00;0.00}}" />

然后它总是显示正数,但后面的数据仍然是负数。

怎样做才是正确的?

EN

回答 2

Stack Overflow用户

发布于 2015-06-18 03:17:13

有很多方法可以解决这个问题,比如OmegaMan的方法,但我的解决方案是根本不使用textbox。遗憾的是,WPF从来没有开箱即用的spinbox/updown控件,但extended WPFToolkit确实有一个。那么,为什么要浪费时间来解析和处理所有令人讨厌的情况呢?让控件来做繁重的工作。

代码语言:javascript
复制
<extToolkit:IntegerUpDown Value="{Binding Width}" Minimum="0"/>

完成

票数 3
EN

Stack Overflow用户

发布于 2015-06-18 02:50:37

由于验证规则强制该值为正,因此我建议同时检查VM属性中的值,以强制/转换该值:

代码语言:javascript
复制
public string Width
{
   get { return _width; }
   set 
       {
          int result;
          int.TryParse(width, out result);
          _width = (result < 0 ? result *-1 : result).ToString();   
          PropertyChanged("Width");
       } 
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30898015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档