СКСФ:отображать вид из другого представления при нажатии кнопки
Вопрос
я столкнулся с одной проблемой в SCSF.
У меня есть два рабочих места
- MdiWorkspace
- ПалубаРабочее пространство
у меня есть два представления в модуле
- Средство просмотра (отображение в mdiworkspace)
- Средство просмотра свойств (в рабочем пространстве колоды)
в средстве просмотра у меня есть кнопка на панели инструментов, цель которой — отобразить PropertyViewer (другой вид).
как я могу отобразить этот PropertyViewer в палубном рабочем пространстве при нажатии кнопки.
ПРИМЕЧАНИЕ: я не использую Command[CommandName].AddInvoker(control, "click:) и CommandHandler
Решение
Я предполагаю, что ваша панель инструментов находится в SmartPart, реализующем шаблон MVP.Пусть обработчик событий нажатия кнопки в SmartPart запускает событие, которое будет обрабатывать его презентатор.Ваш код презентатора будет выглядеть так:
// Presenter code protected override void OnViewSet() { this.View.ToolbarButtonClick += View_ToolbarButtonClick; } public void View_ToolbarButtonClick(object sender, EventArgs e) { // remove the handler so the property viewer // will only be added the first time this.View.OnToolbarButtonClick -= View_ToolbarButtonClick; var propertyView = new PropertyViewer(); this.WorkItem.Workspaces[WorkspaceNames.MyDeckWorkspace].Show(propertyView); }
Не связан с StackOverflow