私はWPFベースのアプリケーションを構築しています。私はUnityを使用して、アプリケーション(App.xaml.csで定義されています)のさまざまな依存関係をすべて注入しています。 私のMainApplicationウィンドウには、Controlから派生したかなり複雑なルックレスカスタムコントロールがあります(これにはさらに10個のコントロールが統合されています)。 私はこのカスタムコントロールに、アプリケーション内の他のオブジェクト(もちろんApp.xaml.csを除く)に結合することなくVMを注入したいと思います。Unityを使用してWPFのカスタムコントロールにVMを注入します。
私のアプリケーションの任意のWPFウィンドウへの注入はうまくいくが、私は別の状況に直面していますカスタムコントロールに注入してみてください。 1.私は container.RegisterInstance(container.Resolve)を使用していた場合には、
DIはMyCustomControlのダミーのインスタンスを作成し、VM(使用[依存]属性)を注入します。
が、その場合には、それはすべての依存関係を無視して新しいMyCustomControlを初期化します:私は私のXAMLでそれを使用する場合しかしながら、この特定のインスタンスが使用されていません。
- ケースを使用している場合は container.RegisterType();
MyCustomControlは完全に注射を無視します。
は、私はおそらく何か間違ったことを(だけでなく、技術的に)やって実現し、私は実際に(明らかに問題を解決します)、この制御をカップリングを避けるためにしようとしています。