4

例如,我有一个视图模型

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 { ... }

}

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

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

4

1 回答 1

0

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

于 2013-04-26T12:03:10.697 回答