我有一个用于添加或编辑客户的视图和相应的视图模型。
如果我单击“添加新客户”按钮,unity 会为我连接一个漂亮的新客户视图,并传入我的数据上下文和视图模型,以及作为构造函数参数的客户对象。
我保存了我的客户,现在想从我的数据网格中查看另一个现有的客户记录。
我有一个从数据网格接受 selectedItem(客户)的命令,现在我想在视图模型的构造函数中将它作为参数传递给我的 CustomerView。
我如何告诉 Unity 我现在想使用我的 Client 参数构建我的 Views 视图模型,然后导航到该视图?
编辑 我在 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“客户”参数设置为我的 selectedItem(Customer)????
private void OnViewCustomer(Customer customer)
{
try
{
_unityContainer.Resolve<ICustomerViewViewModel>(new ParameterOverride("customer", customer));
_regionManager.RequestNavigate("MainRegion", "CustomerView");
}
catch (Exception ex)
{
}
}
谢谢。