格式化零值为空字符串? [英] Formatting Zero Values as Empty String?
本文介绍了格式化零值为空字符串?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
<$ p $ < code>< DataGridTextColumn Header =dLBinding ={Binding Path = Value.DLHistoric,StringFormat ='{} {0.000 ;;}'Width =Auto/>
我正在使用这里,并在第二个分号之后加上一个空格来获得空字符串。
非常感谢!
更新
$
< DataGridTextColumn Header =dLBinding ={Binding Path = Value.DLHistoric,StringFormat = 0.000 ;;#}Width =Auto/>
解决方案
示例IValueConverter
[ValueConversion(typeof(string),typeof(string))]
public class StringToFeetAndInches:IValueConverter
{
public object Convert (对象值,类型targetType,对象参数,CultureInfo文化)
{
string str = value as string;
if(string.IsNullOrEmpty(str))return str;
str = str.Insert(1,');
str = str +\;
return str;
}
公共对象ConvertBack(对象值,类型targetType,对象参数,CultureInfo culture)
{
return 0;
}
}
< UserControl.Resources>
< NS:StringToFeetAndInches x:Key = cStringToFeetAndInches/>
< /UserControl.Resource>
< TextBlock Text ={Binding Path = Height,Converter = {StaticResource cStringToFeetAndInches}}/>
I'm struggling with my first foray into WPF string formatting. I'd like to be able to format a textbox column in a data grid with an empty string when the underlying value is zero and format all other values as 0.000. However, my XAML doesn't seem to be up to the job as it shows blanks for all values and not just for zeros:
<DataGridTextColumn Header="dL" Binding="{Binding Path=Value.DLHistoric, StringFormat='{}{0.000;; }'" Width="Auto" />
I am using the semicolon operator as described here and have added a space after the second semicolon to get the empty string.
Many thanks!
Update
This does the trick:
<DataGridTextColumn Header="dL" Binding="{Binding Path=Value.DLHistoric, StringFormat=0.000;;#}" Width="Auto" />
解决方案
Example IValueConverter
[ValueConversion(typeof(string), typeof(string))]
public class StringToFeetAndInches : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
string str = value as string;
if (string.IsNullOrEmpty(str)) return str;
str = str.Insert(1, "'");
str = str + "\"";
return str;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return 0;
}
}
<UserControl.Resources>
<NS:StringToFeetAndInches x:Key="cStringToFeetAndInches"/>
</UserControl.Resource>
<TextBlock Text="{Binding Path=Height, Converter={StaticResource cStringToFeetAndInches}}" />
这篇关于格式化零值为空字符串?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文