6

TextBox を文字列値にバインドしました

 Text="{Binding AgeText, Mode=TwoWay}"  

文字列「0」のstring.emptyまたは「」、および他のすべての文字列を元の値で表示するにはどうすればよいですか?

助けてくれてありがとう!

乾杯

PS: 1 つの方法は、文字列のカスタム ViewModel です..しかし、可能であれば、XAML で直接行うことをお勧めします。

4

3 に答える 3

7

http://www.codeproject.com/KB/books/0735616485.aspxで何かを見つけました。
これでうまくいきます。

Text="{Binding AgeText, StringFormat='\{0:#0;(#0); }'}"

乾杯

于 2009-07-09T09:50:14.257 に答える
7

ViewModel を使用する以外の唯一の方法は、カスタム ValueConverter を作成することだと思います。

したがって、基本的にあなたの選択肢は次のとおりです。

ビューモデル:

private string ageText;
public string AgeText{
    get{
        if(ageText.equals("0"))
            return string.empty;

        return ageText;
    }
    ...
}

バリューコンバーター:

public class AgeTextConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        if (value.Equals("0"))
            return string.Empty;

        return value;
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {

    }
}
于 2009-07-09T09:21:28.060 に答える
4

ここでは Age プロパティは明らかに数値であるため、Age を int として公開し、次のStringFormat属性を使用する方法もありますBinding

Text="{Binding Age, Mode=TwoWay, StringFormat='{}{0:#}'}"
于 2009-07-09T09:47:13.047 に答える