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

あなたがやりたいことの可能な方法はありません。最も簡単な方法は、自分で提供することです。2 番目の方法は、ViewModel で文字列プロパティを公開し、getter で事前にフォーマットすることです。

于 2014-01-23T04:05:33.353 に答える