0

SCSFで1つの問題に直面しています。

2つのワークスペースがあります

  1. MdiWorkspace
  2. DeckWorkspace

モジュールに2つのビューがあります

  1. ビューアー(mdiworkspaceに表示)
  2. プロパティビューア(デッキワークスペース内)

ビューアーには、PropertyViewer(別のビュー)を表示することを目的としたツールバーのボタンがあります。

このPropertyViewerをdeckworkspaceagaistボタンクリックイベントに表示するにはどうすればよいですか。

注: Command [CommandName] .AddInvoker(control、"click:)とCommandHandlerを使用していません

4

1 に答える 1

1

ツールバーは、MVP パターンを実装する SmartPart にあると仮定します。SmartPart のボタン クリック イベント ハンドラーで、そのプレゼンターが処理するイベントを発生させます。プレゼンター コードは次のようになります。

// プレゼンター コード

保護されたオーバーライド void OnViewSet()
{
   this.View.ToolbarButtonClick += View_ToolbarButtonClick;
}

public void View_ToolbarButtonClick(オブジェクト送信者, EventArgs e)
{
    // ハンドラーを削除して、プロパティ ビューアーを
    // 初回のみ追加されます
    this.View.OnToolbarButtonClick -= View_ToolbarButtonClick;

    var propertyView = 新しい PropertyViewer();
    this.WorkItem.Workspaces[WorkspaceNames.MyDeckWorkspace].Show(propertyView);
}
于 2009-09-24T20:24:05.857 に答える