none
WPF TextBox格式化输出 RRS feed

  • 问题

  • 想得到以下效果:
    1、后台绑定值:12.345
    画面TextBox显示【12.3】,但值不变,后台计算时得到的还是12.345

    2、用户在画面输入12.123,回车,TextBox显示12.1,传到后台的值是12.123



    今天不玩命,明天命玩你
    • 已移动 mldark 2010年1月25日 15:16 (发件人:Visual C#)
    2010年1月25日 12:50

全部回复

  • 贴出来代码 
    2010年1月25日 13:45
  • 你好!
         你可以使用Binding的Format事件,Format 事件在数据从数据源推入控件时引发。可以处理 Format 事件,以将数据源中的未格式化数据转换成用于显示的格式化数据。
    周雪峰
    2010年1月25日 14:36
    版主
  • 你好!
         你可以使用Binding的Format事件,Format 事件在数据从数据源推入控件时引发。可以处理 Format 事件,以将数据源中的未格式化数据转换成用于显示的格式化数据。
    周雪峰
    如果是周版主说的绑定
    这不是winform的  wpf没有提供这种方式 提供了一个绑定转换器System.Windows.Data.IValueConverter 自定义个类继承这个接口可以现实的

    http://msdn.microsoft.com/en-us/library/system.windows.data.ivalueconverter.aspx
    2010年1月25日 15:00
  • 我就是用的这个方法,但是,TextBox绑定到后台的一个属性,当有效的数值没有发生变化时,它不转换,如:
    保留小数后1位,原来是123.4,再输入123.45,它不去调用Converter,依然表示123.45


    今天不玩命,明天命玩你
    2010年3月9日 7:03
  • TextBox你是不是设置最大长度,只为三个字符了?
    2010年3月15日 8:34
  • Binding,然后实现Converter,写一个类继承  IValueConverter,然后做四舍五入的转换即可。
    2010年3月16日 3:20
  • 我就是用的这个方法,但是,TextBox绑定到后台的一个属性,当有效的数值没有发生变化时,它不转换,如:
    保留小数后1位,原来是123.4,再输入123.45,它不去调用Converter,依然表示123.45


    今天不玩命,明天命玩你
    .NET 4.0应该不存在这个问题了...
    just another day.
    2011年5月10日 11:09