4

これがばかげた質問でしたらすみません。WPF コマンド インフラストラクチャに関する多数の記事を読みましたが、これまで以上に混乱しています。

組み込みコマンドを使用して、(たとえば) 標準の切り取り/コピー/貼り付け機能をフォーカスされたテキスト ボックスに適用するツールバーを実装できることを理解しています。

<ToolBar>
    <Button Command="{x:Static ApplicationCommands.Cut}">Cut</Button>
    <Button Command="{x:Static ApplicationCommands.Copy}">Copy</Button>
    <Button Command="{x:Static ApplicationCommands.Paste}">Paste</Button>
</ToolBar>

しかし、このパターンを拡張して、単一のツールバーを使用して、さまざまなコントロールに対して同様の (ただし同一ではない) 操作を呼び出すことができるようにしたいと考えています。たとえば、切り取り、コピー、貼り付け操作もサポートする、ListBox から派生したカスタム コントロールを作成する場合があります。ListBox でのコピー操作の実行は、TextBox の場合とは異なる方法でコーディングされますが、同じツールバー ボタンから呼び出されます。

だから、私の質問は次のとおりです。

[1] 上記の例のようにコマンドを実行できるようにするには、カスタム コントロールに何を実装する必要がありますか? 具体的には、フォーカス時にツールバーから検出できるようにする必要があります。

[2] フォーカスされているコントロールの種類に応じて、1 つのボタンでさまざまなコマンドを呼び出せるようにするには、ツールバーでどのマークアップが必要ですか?

あなたが提供できるアドバイスに感謝します。

ティム

4

1 に答える 1

0

MVVM パターンを使用したジェネリック RelayCommands は、WPF アプリケーションを作成するための最良の方法です。ここでそれについて読むことができます。これらのコマンドは、データコンテキストをコマンドの存在クラスとして指定することにより、任意のコントロールにバインドできます。

マークアップは、x:Static の代わりに Binding キーワードを使用します。

これでクエリが解決するかどうかお知らせください。

スシャント。

于 2011-03-02T10:10:52.063 に答える