私はIValueConverterの実装クラスを持っています。私はそれをDIコンテナ(Ninject)を使って注入する必要があります。XAMLにコンバータを挿入する方法
XAMLでは、Converterオブジェクトのインスタンス化を制御することはすぐにはわかりません。
だから私のXAMLは、このような行に何か含まれています
ソース= "{バインディングパス= CurrentMessage、コンバーター= {StaticResource ImagePathConverter}}"
、ImagePathConverter意志を私のために作成される。
"サービスロケータ"静的クラスを作成してそれを呼び出すと、依存関係を解決し、StaticResourceをプロパティ "MyServiceLocator.TheImageConverter"に変更することができますが、それは私に嘔吐したいものです。
この質問には、提供されたコードを具体的にターゲットとしたコードスニペットをいくつか回答してほしいと思っています。どこかで見てみることを推奨するだけではありません。
また、非常に重要なことは、XAML にはコードビハインドがなく、私は使用できないと仮定します。私はスキンを作成しているので、コードが欲しくない。クラスのコンストラクタでクラス変数を設定して参照することはできません。たぶんそれは不合理だ、私はまだわからない。
私はあなたがコンバータはDIで解決する必要がある理由を知って興味がありますか..? – NotDan
Converterは、依存関係のある書式設定クラスを使用する(依存する)ため、依存関係のそれぞれにも依存関係が存在する可能性があります。これはDIの全体のポイントです - これらの依存関係を私のために結びつけることです。 多くの人が新しいオブジェクトに使っているだけで、主な目的が分からないのだろうか? – PandaWood