3

標準のIValueConverterインスタンスであるリソースを追加しようとしています。そのコンバーターをXAMLで使用したいのですが、提供されたキーでリソースが見つからないという例外が表示されます。

コードは次のとおりです。

    public CallLogs(IMessenger messenger, IKernel kernel)
    {
        InitializeComponent();

        _kernel = kernel;
        var phoneToContactConverter = _kernel.Get<PhoneNumberToContactConverter>();
        Resources.Add("PhoneNumberToContactConverter", phoneToContactConverter);
    }

これがXAMLです

<TextBlock Text="{Binding Number, Converter={StaticResource PhoneNumberToContactConverter}, ConverterParameter={Binding}}" />

例外が発生します

{"'PhoneNumberToContactConverter'という名前のリソースが見つかりません。リソース名では大文字と小文字が区別されます。"}。

コードビハインドからリソースを参照する方法はありますか?

ありがとう。

4

2 に答える 2

4

現時点ではC#コンパイラにアクセスできないため、試してみることができませんが、リソースの追加後にInitializeComponent()を移動してみてください。InitializeComponentは、XAMLで指定されたすべての処理を実行しますが、バインドしているリソースはその時点では存在しません。

于 2012-07-04T16:01:41.447 に答える
0

こんにちは、動的リソースを試すことができます(リソースタイプの不一致)

<TextBlock Text="{Binding Number, Converter={DynamicResource PhoneNumberToContactConverter}, ConverterParameter={Binding}}" />
于 2012-07-04T15:56:48.393 に答える