Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >C# WPF文本框TextEdit不以科学计数法显示

C# WPF文本框TextEdit不以科学计数法显示

作者头像
用户9127601
发布于 2021-11-01 03:06:33
发布于 2021-11-01 03:06:33
1.1K00
代码可运行
举报
文章被收录于专栏:dotNET编程大全dotNET编程大全
运行总次数:0
代码可运行

01

前言

一个float或者double类型的数值,如果小数点后0的个数≥4,在界面上就会自动以科学计数法显示,

比如:0.00003会显示成这样

但是很多时候我并不希望它这样显示,因为这样不方便编辑,和界面其它数据格式也不统一,我只希望原样显示。这时候我们就需要进行Convert。

02

Converter实现方法

首先创建Converter类:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 public class StringToNumberConverter:IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            NumberStyles numberStyles = System.Globalization.NumberStyles.Float;
            //使界面不显示科学计数法
            return Decimal.Parse(value.ToString(), numberStyles);
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            //可以输入“.”或者“,”,原理是使其报错则不对binding的变量赋值
            string result = (value.ToString().EndsWith(".") ? "." : value).ToString();
            result = (result.ToString().EndsWith(",") ? "," : result).ToString();
            //可以输入末尾是0的小数,原理同上
            Regex re = new Regex("^([0-9]{1,}[.,][0-9]*0)$");
            result = re.IsMatch(result) ? "." : result;
            return result;
        }
    }

其次在xaml中:

①引用命名空间:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 xmlns:converters="clr-namespace:CaliburnTest"

②用户资源定义x:key:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 <converters:StringToNumberConverter x:Key="StringToNumberConverter"/>

③在空间中绑定Converter

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<dxlc:LayoutItem
                        Margin="10,0,0,0"
                        FontSize="13"
                        Label="DefectSize(m)" HorizontalContentAlignment="Right">
                            <dxe:TextEdit
                            Width="150"
                            HorizontalAlignment="Left"
                            MaskType="Numeric"
                            Text="{Binding DefectSize, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay,Converter={StaticResource StringToNumberConverter}}" />
                        </dxlc:LayoutItem>

03

运行结果

成功实现数值的原样显示!

--------------------------------------------

项目源码获取:

链接:https://pan.baidu.com/s/1Pzzi3awsr7-j1odl-X3A_A

提取码:点击在看后添加小编微信zls20210502获取

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 dotNET编程大全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
C# IValueConverter接口用法举例
IValueConverter接口位于名称空间System.Windows.Data,接口定义了Convert和ConvertBack两组方法:
用户9127601
2022/03/23
7440
C# IValueConverter接口用法举例
C# WPF mvvm模式下combobox绑定(list<enum>、Dictionary<int,string>)
ComboBox是一个非常常用的界面控件,它的数据源ItemsSource既可以绑定一个List列表,也可以是一个字典,本篇文章就讲这些内容展开讲解。
用户9127601
2021/11/01
6.9K0
WPF桌面端开发6-Window.Resources
WPF和HTML页面类似用XML进行页面编程,那么上述的模板、CSS和JS放在哪呢?
码客说
2020/05/09
1.7K0
最简单的代码,让 WPF 支持响应式布局
响应式布局在各种现代的 UI 框架中不是什么新鲜的概念,基本都是内置支持。然而在古老的 WPF 框架中却并没有原生支持,后来虽然通过 Blend 自带的 Interactions 库实现了响应式布局,但生成的代码量太大了,而且需要引入额外的库。
walterlv
2020/04/08
1.4K0
WPF-数据转换器
MaybeHC
2025/02/17
1890
WPF中一个通用的BoolToXXX转换类
在WPF程序的数据绑定里面,经常会通过一个布尔类型的值来控制UI控件的状态,例如是否可见,是否最大化之类的。然而UI控件的各个状态属性的类型往往不是布尔类型,比如UIElement.Visibility的类型是Visibility枚举,Window.WindowState的类型是WindowState枚举。以前我为了将布尔类型的数据绑定到这些可依赖属性的时候,经常要写很多ValueConverter,例如BoolToVisibilityConverter啦,BoolToWindowStateConverter啦,很麻烦。介绍一个通用的BoolToXXX转换类,这个类使用Binding对象的ConverterParameter和FallbackValue来实现布尔类型与任意值转换的功能。
用户9127601
2021/11/01
6140
WPF --- 如何以Binding方式隐藏DataGrid列
先在ViewModel创建数据源 People 和控制列隐藏的 IsVisibility,这里直接以 MainWindow 为 DataContext
Niuery Diary
2023/11/23
1.1K0
WPF --- 如何以Binding方式隐藏DataGrid列
WPF命令(Command)介绍、命令和数据绑定集成应用
要开始使用命令,必须做三件事:                                               一:定义一个命令                                               二:定义命令的实现                                               三:为命令创建一个触发器     WPF中命令系统的基础是一个相对简单的ICommand的接口,代码如下: public interface IComma
hbbliyong
2018/03/05
6.5K0
WPF命令(Command)介绍、命令和数据绑定集成应用
WPF 鼠标移动到列表上 显示列表图标
Visibility="{Binding RelativeSource={RelativeSource AncestorType=ListBoxItem}, Path=IsMouseOver, Converter={StaticResource BooleanToVisibilityConverter}}"
林德熙
2018/09/18
2.9K0
WPF 鼠标移动到列表上 显示列表图标
《深入浅出WPF》学习笔记之深入浅出话Binding
  如果把Binding比作数据的桥梁,那么它的两端分别是Binding的源(Source)和目标(Target)。一般源是逻辑层对象,目标是UI层控件对象.
zls365
2021/02/26
6.4K0
WPF 笔刷绑定不上可能的原因
在 WPF 中如背景色等都是使用笔刷,在使用绑定的时候可能绑定不上,本文告诉大家绑定不上可能的原因和调试方法
林德熙
2022/08/04
8030
Silverlight数据绑定/IValueConverter学习笔记
先回忆一下aspx中的处理: 在aspx中,可以直接在后台定义一个变量,然后前台就可以用<%=xxx%>来将其"绑定"html控件上,比如下面这样,实在是很方便: using System; namespace WebApplication1 { public partial class _Default : System.Web.UI.Page     { protected string _Test = DateTime.Now.ToString(); protected void Page_
菩提树下的杨过
2018/01/23
1.1K0
WPF中加载本地图片推荐方式
因为这样加载一方面图片的内存释放会有问题,容易导致内存泄漏,另一方面,被加载的图片就会处于占用状态,如果此时我们要处理图片比如压缩上传,就会因占用而报错。
码客说
2023/11/05
7660
Binding(五):多路绑定
Binding不止能绑定一个源,它还能绑定多个源,这就是我们这节要讲的多路绑定:MultiBinding。
宿春磊Charles
2021/11/05
1.3K0
WPF备忘录(3)如何从 Datagrid 中获得单元格的内容与 使用值转换器进行绑定数据的转换IValueConverter
一、如何从 Datagrid 中获得单元格的内容    DataGrid 属于一种 ItemsControl, 因此,它有 Items 属性并且用ItemContainer 封装它的 items.  但是,WPF中的DataGrid 不同于Windows Forms中的 DataGridView。 在DataGrid的Items集合中,DataGridRow 是一个Item,但是,它里面的单元格却是被封装在 DataGridCellsPresenter 的容器中;因此,我们不能使用 像DataGridVie
hbbliyong
2018/03/05
6.5K0
Silverlight本地化
ilverlight本地化 简单的实现多语言版本的Silverlight应用。 日益国际化的同时,需要我们开发的应用根据不同的来访者显示不用的语言,Silverlight在这个方面就提供了很方便的支持。 下来就来介绍一下如何做本地化 在VS中新建Silverlight项目 添加一个资源文件 添加一些文案,注意:Access Modifier 要设置为Public 然后复制这个文件,修改其名字做多语言支持。 相关列表请查阅这里:http://msdn.microsoft.com/zh-cn/vs
用户1172164
2018/01/16
8290
C#版 - PAT乙级(Basic Level)真题 之 1024.科学计数法转化为普通数字 - 题解
在线提交 - 牛客网: https://www.nowcoder.com/pat/6/problem/4050 或 PTA (拼题A) | 程序设计类实验辅助教学平台(原PAT) https://pintia.cn/problem-sets/994805260223102976/problems/994805297229447168
Enjoy233
2019/03/05
8440
C#版 - PAT乙级(Basic Level)真题 之 1024.科学计数法转化为普通数字 - 题解
WPF ComboBox 使用 ResourceBinding 动态绑定资源键并支持语言切换
WPF ComboBox 使用 ResourceBinding 动态绑定资源键并支持语言切换
独立观察员
2022/12/06
2.3K0
WPF ComboBox 使用 ResourceBinding 动态绑定资源键并支持语言切换
wpf 绑定 TextLength
我看到朋友的代码出现绑定了 一个 TextBlock 的 Text 的 length ,那时候我觉得 length 不是依赖属性,绑定了是无法通知的。最后我做了实验才发现,原因有 Text 可以通知。
林德熙
2018/09/18
7730
[UWP]了解IValueConverter
IValueConverter是用于数据绑定的强大的武器,它用于Value在Binding Source和Binding Target之间的转换。本文将介绍IValueConverter的用法及一些常用的实现。
dino.c
2019/01/18
1K0
[UWP]了解IValueConverter
相关推荐
C# IValueConverter接口用法举例
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验