SCSF: Exibir exibição de outra visualização contra o botão Clique

StackOverflow https://stackoverflow.com/questions/1366057

  •  21-09-2019
  •  | 
  •  

Pergunta

Estou enfrentando um problema no SCSF.

Eu tenho dois espaços de trabalho

  1. Mdiworkspace
  2. Deckworkspace

Eu tenho duas visualizações em um módulo

  1. Visualizador (exibição no mdiworkspace)
  2. Visualizador de propriedades (no Deckworkspace)

No visualizador, tenho um botão na barra de ferramentas cujo objetivo é exibir o PropertyViewer (outra visualização).

Como posso exibir este PropertyViewer no evento DeckWorkWorkspace Agaist Clique em Evento.

NOTA: Não estou usando comando [commandName] .addinvoker (Control, "Clique :) e CommandHandler

Foi útil?

Solução

Vou assumir que sua barra de ferramentas está em uma parte inteligente que implementa o padrão MVP. Faça com que o manipulador de eventos de clique em Button no SmartPart dispare um evento que seu apresentador lidará. O código do seu apresentador ficaria assim:

// 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);
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top