質問

Converter ブログ投稿のコード内のプロパティ、 Silverlight 4のSilverlight Multibinding Solution 4, 、依存関係のプロパティではないため、コンバーターでバインドすることはできません(技術的な理由で、ユーザーコントロールの一部として単純な静的リソースとしてではなく、アプリケーションの早い段階でunityインジェクションの一部としてインスタンス化する必要があります)。

どうすれば変更できますか MultiBinding バウンドコンバーターを受け入れるコード?私はそれを依存関係プロパティにしようとしました:

public IMultiValueConverter Converter { get { return (IMultiValueConverter)GetValue(ConverterProperty); } set { SetValue(ConverterProperty, value); } }
public static DependencyProperty ConverterProperty = DependencyProperty.Register("Converter", typeof(IMultiValueConverter), typeof(IMultiValueConverter), null);

しかし、私は手に入れました

DependencyProperty System.Windows.Data.ImultivalueConverter。コンバーターは、タイプのオブジェクトに設定できません... Binding.Multibinding。

これが実行可能なオプションではない場合、どうすればバインドできますか ConverterParameter プロパティまたはコンバーターのバインディングをシミュレートするために何かを取得する MultiBinding?

役に立ちましたか?

解決

「シミュレートされたバインディング」ルートを使用してこれを解決しましたが、誰かが別の答えを持っている場合、それは私の好みではありません。代わりに私がしたことは、依存関係の注入を介してコンバーターを構築することではなく、サービスの場所を使用して必要な依存関係を取得したことでした。通常、私はサービスの場所に依存噴射を好みます。 「サービスの場所」は、アプリケーションのグローバルリソースにUnityコンテナを保存する問題でした。そこから、必要なものを手に入れることは難しくありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top