我正在使用 Caliburn.Micro。
在我的视图中,我有一个TextBox
Binded todouble X
和一个在我的 ViewModelButton
中改变X值的。
public void ButtonPressed()
{
X = AnObject.GetDouble;
NotifyOfPropertyChange(() => X);
}
public double X { get; set; }
我的目标是限制显示的小数位数。此数字可在应用程序中配置,因此可用作 AnObject 的属性。因此我定义了一个IMultiValueConverter
:
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
return String.Format(values[1].ToString(), values[0]);
}
并将我的 TextBox 定义如下:
<TextBox>
<TextBox.Text>
<MultiBinding Converter="{StaticResource coordinateConverter}" >
<Binding Path="X" />
<Binding Path="AnObject.FormatNumberOfDecimals" />
</MultiBinding>
</TextBox.Text>
</TextBox>
什么有效: X 的初始值为零,格式正确。
什么不起作用:按下按钮时,新值不会显示在 TextBox 中。
也欢迎不使用 IMultiValueConverter 的建议。