顧客を追加または編集するためのビューと対応するビュー モデルがあります。
[新しい顧客を追加] ボタンをクリックすると、Unity によって光沢のある新しい CustomerView が作成され、データ コンテキストとビュー モデル、およびコンストラクター パラメーターである顧客オブジェクトが渡されます。
顧客を保存しましたが、データグリッドから別の既存の顧客レコードを表示したいと考えています。
データグリッドから selectedItem (Customer) を受け入れるコマンドがあり、ビュー モデルのコンストラクターで、これをパラメーターとして CustomerView に渡したいと考えています。
Client パラメーターを使用してビュー ビュー モデルを構築し、ビューに移動したいことを Unity に伝えるにはどうすればよいですか?
編集 ビューを CustomerModule に登録し、次のように Customers 起動ボタンをナビゲーション領域に追加します。
public void Initialize()
{
_container.RegisterType<ICustomerMainView, CustomerMainView>();
_container.RegisterType<ICustomerMainViewViewModel, CustomerMainViewViewModel>();
_container.RegisterType<ICustomerView, CustomerView>();
_container.RegisterType<ICustomerViewViewModel, CustomerViewViewModel>();
_container.RegisterType<ICustomerNavIconView, CustomerNavIconView>();
_container.RegisterType<ICustomerNavIconViewModel, CustomerNavIconViewModel>();
//var view = _container.Resolve<ICustomerMainView>();
//var view1 = _container.Resolve<ICustomerView>();
_regionManager.RegisterViewWithRegion("NavigationRegion", typeof(Views.CustomerNavIconView));
}
新しい顧客を追加するには、次のコマンドを使用します。
private void OnAddNewCustomer()
{
try
{
_regionManager.RegisterViewWithRegion("MainRegion", typeof(Views.CustomerView));
_regionManager.RequestNavigate("MainRegion", "CustomerView");
}
catch (Exception ex)
{
}
}
これで問題ありません。新しい顧客を追加して詳細を保存できます。グリッドのレコードをダブルクリックして保存した顧客を表示したい場合、次のようなコマンドがありますが、CustomerViewViewModel の「顧客」パラメータを selectedItem(Customer) に設定する方法がわかりません????
private void OnViewCustomer(Customer customer)
{
try
{
_unityContainer.Resolve<ICustomerViewViewModel>(new ParameterOverride("customer", customer));
_regionManager.RequestNavigate("MainRegion", "CustomerView");
}
catch (Exception ex)
{
}
}
ありがとう。