0
我需要實例化一個命令一個新的觀點棱鏡Silverlight的實例化一個新的觀點
想象我有一個「新員工」按鈕,在一個模塊中,當你按下它,我想創建一個新的員工看來,你按3次,我想要一個包含三個元素的標籤,每個標籤頁包含一個員工的數據,然後你可以分別保存和/或關閉每個標籤頁。
我該如何與棱鏡做到這一點?
我需要實例化一個命令一個新的觀點棱鏡Silverlight的實例化一個新的觀點
想象我有一個「新員工」按鈕,在一個模塊中,當你按下它,我想創建一個新的員工看來,你按3次,我想要一個包含三個元素的標籤,每個標籤頁包含一個員工的數據,然後你可以分別保存和/或關閉每個標籤頁。
我該如何與棱鏡做到這一點?
ViewInjectionComposition QuickStart有一個很好的例子,你正在尋找什麼。
你要做的是將一個命令委託給一個控制器,讓你的作用域區域離開區域管理器。一旦你有了範圍區域,解析一個新的視圖並將其添加到區域。
這是快速入門的一個片段,您可以輕鬆修改以執行您正在查找的內容。
public class EmployeesController : IEmployeesController
{
private IUnityContainer container;
private IRegionManager regionManager;
public EmployeesController(IUnityContainer container, IRegionManager regionManager)
{
this.container = container;
this.regionManager = regionManager;
}
public virtual void OnEmployeeSelected(BusinessEntities.Employee employee)
{
IRegion detailsRegion = regionManager.Regions[RegionNames.DetailsRegion];
object existingView = detailsRegion.GetView(employee.EmployeeId.ToString(CultureInfo.InvariantCulture));
if (existingView == null)
{
IProjectsListPresenter projectsListPresenter = this.container.Resolve<IProjectsListPresenter>();
projectsListPresenter.SetProjects(employee.EmployeeId);
IEmployeesDetailsPresenter detailsPresenter = this.container.Resolve<IEmployeesDetailsPresenter>();
detailsPresenter.SetSelectedEmployee(employee);
IRegionManager detailsRegionManager = detailsRegion.Add(detailsPresenter.View, employee.EmployeeId.ToString(CultureInfo.InvariantCulture), true);
IRegion region = detailsRegionManager.Regions[RegionNames.TabRegion];
region.Add(projectsListPresenter.View, "CurrentProjectsView");
detailsRegion.Activate(detailsPresenter.View);
}
else
{
detailsRegion.Activate(existingView);
}
}
}