当我们没有值时,有一个使用 doubl.NaN 插入的数据表。我想要做的是每当我看到 double.Nan 我想把“-”代替,因此我有一个带有以下代码的转换器:
if (value.ToString() == double.NaN.ToString())
{
return "-";
}
一切都在“en-us”文化上完美运行,但是当我们使用不同的文化(如“zn-cn”)时,它不起作用,因为“double.NaN.ToString()”会产生一个中文单词,其中 value .ToString() 是正常的“NaN”。
我尝试使用转换器使用 double.parse(),但没有任何效果。
更新 -好的,问题是转换器将对象作为字符串获取,而不是作为 Xaml 的两倍:
<ControlTemplate TargetType="{x:Type DataGridCell}">
<Border Background="Transparent" Padding="10 8" BorderBrush="Transparent" BorderThickness="1">
<Border.Resources>
<Style TargetType="ToolTip">
<Setter Property="OverridesDefaultStyle" Value="true"/>
<Setter Property="HasDropShadow" Value="False"/>
<Setter Property="VerticalOffset" Value="-46"/>
<Setter Property="HorizontalOffset" Value="10"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ToolTip">
<General:TextTooltip TitleStyle="{StaticResource NumericTableToolTipTitleStyle}" Content="{TemplateBinding Content}" ContentStringFormat="G" ContentStyle="{StaticResource NumericTableToolTipContentStyle}"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Border.Resources>
<TextBlock x:Name="tbCellText" Text="{Binding RelativeSource={RelativeSource TemplatedParent},
Path=Content.Text, Converter={StaticResource NumericTableCellContentConverter}, ConverterCulture={x:Static gl:CultureInfo.CurrentCulture}}"
ToolTip="{Binding ElementName=tbCellText, Path=Text}"
TextWrapping="Wrap"/>
</Border>
</ControlTemplate>
有没有办法保留对象的类型?
我知道我可以与“NaN”进行比较,但我想要更通用的解决方案。