0

我在 SCSF 中面临一个问题。

我有两个工作区

  1. 工作空间
  2. 甲板工作区

我在一个模块中有两个视图

  1. 查看器(在 mdiworkspace 中显示)
  2. 属性查看器(在 deckworkspace 中)

在查看器中,我在工具栏中有一个按钮,其目的是显示 PropertyViewer(另一个视图)。

我如何在deckworkspace 中显示此PropertyViewer 以防止按钮单击事件。

注意:我没有使用 Command[CommandName].AddInvoker(control, "click:) 和 CommandHandler

4

1 回答 1

1

我将假设您的工具栏位于实现 MVP 模式的 SmartPart 中。让 SmartPart 中的按钮单击事件处理程序触发其演示者将处理的事件。您的演示者代码如下所示:

// 演示者代码

受保护的覆盖无效 OnViewSet()
{
   this.View.ToolbarButtonClick += View_ToolbarButtonClick;
}

公共无效 View_ToolbarButtonClick(对象发送者,EventArgs e)
{
    // 删除处理程序,以便属性查看器
    // 只会在第一次添加
    this.View.OnToolbarButtonClick -= View_ToolbarButtonClick;

    var propertyView = new PropertyViewer();
    this.WorkItem.Workspaces[WorkspaceNames.MyDeckWorkspace].Show(propertyView);
}
于 2009-09-24T20:24:05.857 回答