Unityを試していますが、XAMLでviewmodelを宣言する際に問題が発生しています。あなたは私を助けることができます? XAML:XAMLでコンストラクタインジェクションを使用してViewModelを宣言する
<UserControl.DataContext>
<search:SearchBoxViewModel />
</UserControl.DataContext>
コンストラクタ:
[ImportingConstructor]
public SearchBoxViewModel(IRegionManager regionManager, IEventAggregator eventAggregator)
{
this.regionManager = regionManager;
this.eventAggregator = eventAggregator;
}
私はresolutionfailedexceptionを取得し、実行しようとします。 これは、viewmodelに空のコンストラクタがある場合に機能します。コンストラクタインジェクションに問題があるようです。
私はこのようなモジュールをロードした場合:
var searchView = Container.Resolve<SearchBoxView>();
searchView.DataContext = Container.Resolve<SearchBoxViewModel>();
//RegionManager.RegisterViewWithRegion(RegionNames.SearchRegion, typeof(SearchBoxView));
RegionManager.Regions[RegionNames.SearchRegion].Add(searchView);
それは動作します。
xamlでこれを行う可能性はありますか(個人的には良いと思いますが)?
ところで、私は主にWebサービスと通信するwpfを使ってアプリケーションを作成しています。むしろ私は何を利用すべきですか:団結またはMEFと、両者の大きな違いは何ですか?
おかげで、 Raphi
いや私はそれが正常に動作しないことを知っていた。おそらくプリズムの開発者はこれを実装していたかもしれない便利なハックを持っていると考えました。残念な。あなたのソリューションはまだ私のものより優れています。ありがとう! – raphi011
@ raphi011実際に、私が正しく覚えていれば、それは私の解決策ではなく、私はPrismの本から盗んだのです:) – chopikadze