C#/WPF显示自定义字符串(例如,用string.empty替换“0”)
我已通过将文本框绑定到字符串值C#/WPF显示自定义字符串(例如,用string.empty替换“0”),c#,wpf,string-formatting,C#,Wpf,String Formatting,我已通过将文本框绑定到字符串值 Text="{Binding AgeText, Mode=TwoWay}" 如何显示字符串“0”的string.empty或“”,以及所有其他字符串的原始值 谢谢你的帮助 干杯 PS:一种方法是为字符串定制ViewModel。。但是,如果可能的话,我更愿意直接在XAML中实现它。我认为除了使用ViewModel之外,唯一的方法就是创建一个自定义的ValueConverter 所以基本上你的选择是: 视图模型: private string ageText;
Text="{Binding AgeText, Mode=TwoWay}"
如何显示字符串“0”的string.empty或“”,以及所有其他字符串的原始值
谢谢你的帮助
干杯
PS:一种方法是为字符串定制ViewModel。。但是,如果可能的话,我更愿意直接在XAML中实现它。我认为除了使用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)
{
}
}
由于Age属性在这里显然是一个数字,因此另一种方法是将Age公开为int,并使用
绑定的StringFormat
属性:
Text="{Binding Age, Mode=TwoWay, StringFormat='{}{0:#}'}"
我在
这将实现以下目的:
Text="{Binding AgeText, StringFormat='\{0:#0;(#0); }'}"
干杯我会选择自定义值转换器谢谢!ValueConverter正是我想要的。Cheers我记得在Excel中使用#或类似的东西,如果值为0,则显示空单元格。这在StringFormat中难道不起作用吗?你更快了:)我在这里看到了一个问题,如果用户输入值string.empty,我的其他类将需要一个“0”,否则它们将崩溃,所以我想最好的方法是使用ValueConverter。干杯