コンバーター BoolToStringConverter を作成しました。コンバーターには、TrueString と FalseString の 2 つのプロパティがあります。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.Markup.XamlParseException' の初回例外が System.Windows.dll で発生しました
追加情報: プロパティ 'Optimize.Client.Presentation.BooleanToStringConverter.FalseString' を設定すると、例外がスローされました。[ライン: 18 ポジション: 86]