C# WPF文本框TextEdit不以科学计数法显示
生活随笔
收集整理的這篇文章主要介紹了
C# WPF文本框TextEdit不以科学计数法显示
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
01
—
前言
一個(gè)float或者double類型的數(shù)值,如果小數(shù)點(diǎn)后0的個(gè)數(shù)≥4,在界面上就會(huì)自動(dòng)以科學(xué)計(jì)數(shù)法顯示,
比如:0.00003會(huì)顯示成這樣
但是很多時(shí)候我并不希望它這樣顯示,因?yàn)檫@樣不方便編輯,和界面其它數(shù)據(jù)格式也不統(tǒng)一,我只希望原樣顯示。這時(shí)候我們就需要進(jìn)行Convert。
02
—
Converter實(shí)現(xiàn)方法
首先創(chuàng)建Converter類:
public class StringToNumberConverter:IValueConverter{public object Convert(object value, Type targetType, object parameter, CultureInfo culture){NumberStyles numberStyles = System.Globalization.NumberStyles.Float;//使界面不顯示科學(xué)計(jì)數(shù)法return Decimal.Parse(value.ToString(), numberStyles);}public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture){//可以輸入“.”或者“,”,原理是使其報(bào)錯(cuò)則不對(duì)binding的變量賦值string result = (value.ToString().EndsWith(".") ? "." : value).ToString();result = (result.ToString().EndsWith(",") ? "," : result).ToString();//可以輸入末尾是0的小數(shù),原理同上Regex re = new Regex("^([0-9]{1,}[.,][0-9]*0)$");result = re.IsMatch(result) ? "." : result;return result;}}其次在xaml中:
①引用命名空間:
②用戶資源定義x:key:
③在空間中綁定Converter
<dxlc:LayoutItemMargin="10,0,0,0"FontSize="13"Label="DefectSize(m)" HorizontalContentAlignment="Right"><dxe:TextEditWidth="150"HorizontalAlignment="Left"MaskType="Numeric"Text="{Binding DefectSize, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay,Converter={StaticResource StringToNumberConverter}}" /></dxlc:LayoutItem>03
—
運(yùn)行結(jié)果
成功實(shí)現(xiàn)數(shù)值的原樣顯示!
總結(jié)
以上是生活随笔為你收集整理的C# WPF文本框TextEdit不以科学计数法显示的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 抓包写代码模拟怎么减少重复劳动
- 下一篇: C# 正则表达式编写及验证方法