複合 WPF アプリケーションがあります。ツールバー機能を実装する予定です。メイン領域のすべてのビューに共通するツールバー項目 (基本的には、印刷、保存、非表示、展開、元に戻す) はほとんどありません。このために、これらの項目 (印刷、保存、非表示、展開、元に戻す) をツールバー領域に追加するデフォルトのツールバー モジュールを作成しました。ユーザーが任意のツールバー項目をクリックすると、メイン領域の 20 個のビューすべてでこれを処理する必要があります。
ツールバー項目ごとに、プリズム デリゲートコマンド オブジェクトを関連付けました。
サンプル:
private ICommand _printCommand;
public ICommand PrintCommand
{
get
{
if (_printCommand == null)
{
_printCommand =
new DelegateCommand<object>(**Print**, **CanPrint**);
}
return _printCommand;
}
}
Xaml、ツールバー項目をこのコマンドにバインドします。
メイン リージョンでは、20 近くのビューが表示されます。これらのビューはすべて、このコマンドをサブスクライブする必要があります。イベント アグリゲーターを使用してイベントを発行することを考えています。すべてのビューがこのイベントをサブスクライブします。
例: ユーザーが印刷をクリックすると、印刷コマンドは、印刷イベントを発行するPrintメソッドを実行します。このイベントは 20 回のビューでサブスクライブされ、さらに処理が行われます。
ツールバーを正しい方法で実装していますか?