【问题标题】:How to use data annotations to do units conversion in WPF如何在 WPF 中使用数据注释进行单位转换
【发布时间】:2013-04-20 07:26:59
【问题描述】:

例如,我有一个视图模型

class Measurements : ViewModelBase {

    [Units(Meters)]
    double Length { ... }

    [Units(Degrees)]
    double Angle{ ... }
}

然后在我的 XAML 中我想要这样的东西

<TextBox Text="{Binding Path=Length DisplayUnits="Millimeters"}"/>
<TextBox Text="{Binding Path=Length DisplayUnits="Radians"}"/>

并且系统将确保文本框在显示单元中进行编辑 并转换为正确的视图模型单位。

我还会有一个全局设置单例对象

class Settings : ViewModelBase {

    AngleUnitsEnum AngleDisplayUnits { ... }
    LengthUnitsEnum LengthDisplayUnits { ... }

}

可以随时更新,所有文本框都应该更新 立即显示。

在我重新发明轮子、车轴、发动机缸体和 任何人都可以建议舒适的座椅是否有一种简单的方法可以实现 这是内置的?

【问题讨论】:

    标签: c# wpf xaml data-annotations


    【解决方案1】:

    更好的方法可能是使用值转换器(实现IValueConverter 的类,并在XAML 中声明为资源)。你可以在你的文本框上使用一个在 LostFocus 上触发的绑定,所以当你离开 TextBox 你的 ValueConverter 触发并进行转换

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-29
      • 2018-12-04
      • 2010-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多