我有添加或編輯客戶的視圖和相應的視圖模型。WPF PRISM/Unity viewModel參數
如果我點擊添加新客戶按鈕,統一給我一個不錯的閃亮的新的CustomerView,並傳入我的datacontext和視圖模型,以及一個作爲構造器參數的客戶對象。
我保存我的客戶,現在想從我的數據網格中查看另一個現有客戶記錄。
我有一個命令,它接受來自datagrid的selectedItem(Customer),我現在想將它作爲參數傳遞給我的CustomerView,在View Model的構造函數中。
如何告訴Unity我現在想用我的客戶端參數構建我的視圖視圖模型,然後導航到視圖?
編輯 註冊我的CustomerModule意見,並添加一個客戶啓動按鈕,導航區域是這樣的:
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「customer」參數設置爲我的selectedItem(客戶)?
private void OnViewCustomer(Customer customer)
{
try
{
_unityContainer.Resolve<ICustomerViewViewModel>(new ParameterOverride("customer", customer));
_regionManager.RequestNavigate("MainRegion", "CustomerView");
}
catch (Exception ex)
{
}
}
謝謝。
請添加相關的代碼.... – Blachshma