複合アプリケーション (Prism) でモジュールをロードすると、次のエラーが発生します。
{"現在のビルド操作 (ビルド キー Build Key[CustomersModul.ViewModels.CustomerAllViewModel, null]) が失敗しました: コンストラクター CustomersModul.ViewModels.CustomerAllViewModel(CustomersModul.Views.CustomerAllView ビュー) を呼び出そうとしたときに、パラメーター ビューを解決できませんでした。(戦略の種類 Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy、インデックス 2)"}
私はこのクラスを解決しています:
CustomerAllViewModel layoutManager = this.container.Resolve<CustomerAllViewModel>();
そして、そのクラスは次のようになります。
public class CustomerAllViewModel : ViewModelBase
{
public CustomerAllView View { get; set; }
public ICommand TextChangeCommand { get; set; }
private Customer customer;
public CustomerAllViewModel(CustomerAllView view)
{
View = view;
view.DataContext = this;
...
通常、コンストラクター パラメーターを持たないプレゼンターを解決し、それらのビューを内部でインスタンス化します。View をパラメーターとして受け入れるViewModelを使用するのはこれが初めてです。
興味深いことに、Resharperを使用してビューに移動すると、XAML またはコード ビハインドに移動するかどうかを尋ねられるので、おそらく Prism はどちらをインスタンス化するか混乱していますか?
Prism でこのビュー (XAML とコード ビハインドを使用した UserControl) をパラメーターで自動的にインスタンス化するにはどうすればよいですか?