我已经通过
将TextBox绑定到字符串值 Text="{Binding AgeText, Mode=TwoWay}"
如何为字符串“0”显示string.empty或“”,为原始值显示所有其他字符串?
感谢您的帮助!
干杯
PS:一种方法是字符串的自定义ViewModel ..但我更愿意直接在XAML中进行,如果可能的话。
答案 0 :(得分:7)
我认为使用ViewModel的唯一方法是创建自定义ValueConverter。
所以基本上你的选择是:
视图模型:
private string ageText;
public string AgeText{
get{
if(ageText.equals("0"))
return string.empty;
return ageText;
}
...
}
ValueConverter:
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)
{
}
}
答案 1 :(得分:7)
我在http://www.codeproject.com/KB/books/0735616485.aspx上找到了一些东西 这样就可以了:
Text="{Binding AgeText, StringFormat='\{0:#0;(#0); }'}"
干杯
答案 2 :(得分:4)
由于Age属性显然是一个数字,另一种方法是将Age显示为int并使用StringFormat
的{{1}}属性:
Binding