我写了一个转换器 BoolToStringConverter。转换器有两个属性 TrueString 和 FalseString。这是我在 XAML 中使用它的方式
<UserControl.Resources>
<local:BooleanToStringConverter x:Key="BooleanToStringConverter" TrueString="{Binding Strings.Open, Source={StaticResource MyStrings}}"></local:BooleanToStringConverter>
</UserControl.Resources>
这可以编译,但是在运行它时出现 xml 解析异常。如果我将 TrueString 属性的设置更改为 TrueString = "Open",则一切正常。
这是正在使用的转换器:
<Button x:Name="MyButton" Content="{Binding Path=IsOpen, Converter={StaticResource BooleanToStringConverter}}" Command="{Binding MyCommand}" VerticalAlignment="Top" Style="{StaticResource MyStyle}" Margin="0,2,10,2"/>
有什么想法有什么问题吗?我想做的就是将本地资源的属性设置为本地化值。
编辑这是我的转换器类
public class BooleanToStringConverter : IValueConverter
{
public BooleanToStringConverter()
{
}
public string TrueString
{
get;
set;
}
public string FalseString
{
get;
set;
}
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
bool boolValue = System.Convert.ToBoolean(value, CultureInfo.InvariantCulture);
return boolValue ? TrueString : FalseString;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
这是运行时异常消息:
System.Windows.dll 中出现“System.Windows.Markup.XamlParseException”类型的第一次机会异常
附加信息:设置属性“Optimize.Client.Presentation.BooleanToStringConverter.FalseString”引发异常。[行:18 位置:86]