7

我有一个通过Caliburn.Micro命名约定TextBox绑定到视图模型编号属性的 WPF。我希望能够自定义字符串格式,同时保留Caliburn.Micro设置的约定绑定。我该怎么做?DistanceTextBox

从我的视图模型

public double Distance
{
    get { return _distance; }
    set
    {
        _distance = value;
        NotifyOfPropertyChange(() => Distance);
    }
}

从我的角度来看

<TextBox x:Name="Distance"/>

Distance非零时,我想用一组固定的小数显示数字,当Distance是零时,我希望文本框为空。

使用显式绑定我可以将TextBox.Text属性绑定到Distance,然后我可以StringFormat同时设置:

<TextBox x:Name="Distance" Text="{Binding Distance, StringFormat=0.000;;#}"/>

但是,显式绑定随后会使Caliburn.Micro命名约定绑定Text短路。是否可以自定义字符串格式而不必同时设置属性的绑定路径,以便我可以完全依靠Caliburn.Micro来处理-to-绑定?TextBox.TextDistanceTextBox

4

1 回答 1

4

你想做什么是不可能的。最简单的方法是你自己提供。第二种方法是在 ViewModel 中公开字符串属性并在 getter 中对其进行预格式化。

于 2014-01-23T04:05:33.353 回答