我有一个为空字符串提供默认值的转换器。显然,您无法向 ConverterParameter 添加绑定,因此我向转换器添加了一个属性,而是将其绑定到该转换器。
但是,我为默认属性返回的值是“System.Windows.Data.Binding”字符串,而不是我的值。
如何在代码中解决此绑定问题,以便返回所需的真正本地化字符串?
这是我的转换器类(基于答案https://stackoverflow.com/a/15567799/250254):
public class DefaultForNullOrWhiteSpaceStringConverter : IValueConverter
{
public object Default { set; get; }
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (!string.IsNullOrWhiteSpace((string)value))
{
return value;
}
else
{
if (parameter != null)
{
return parameter;
}
else
{
return this.Default;
}
}
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotSupportedException();
}
}
还有我的 XAML:
<phone:PhoneApplicationPage.Resources>
<tc:DefaultForNullOrWhiteSpaceStringConverter x:Key="WaypointNameConverter"
Default="{Binding Path=LocalizedResources.Waypoint_NoName, Mode=OneTime, Source={StaticResource LocalizedStrings}}" />
</phone:PhoneApplicationPage.Resources>
<TextBlock Text="{Binding Name, Converter={StaticResource WaypointNameConverter}}" />
有任何想法吗?