4

私は約 1 年前から WPF に深く関わってきました。多くのことが新しく、頭を悩ませることが時々あります。

同時に、GOF Design Patterns の本を読み直しています。

あるパターンがまさに WPF 機能で使用されているパターンであることに気付いたので、何度か途中でやめました。そのような認識が私を襲ったときはいつでも、関連する WPF の原則に対する理解が大きく飛躍したように感じます。それは一種のアハ効果のようなものです。

また、関連するパターンを説明するドキュメントが非常に優れているため、たとえば Prism を理解するのがはるかに簡単になったことにも気付きました。

だからここに私の「質問」があります(努力のようなものです):

私たち全員が WPF をよりよく理解するのを助けるために、WPF の設計パターンを「見つけた」人が簡単な説明をしてくれると助かります。

私が見つけた非常に明白な例の 1 つは、ルーティング イベントです。

子コントロールによってイベントが検出され、ハンドラーが指定されていない場合、イベントが最終的に処理されるか、親が見つからなくなるまで、親に渡されます。

ウィンドウ内にある StackPanel 内にあるボタンに画像があるとしましょう。ユーザーが画像をクリックすると、イベントはそれによって処理されるか (処理コードが指定されている場合)、いずれかのコントロールが処理するまで「バブル」します。したがって、各コントロールはこの順序で反応する機会を得ます。

  1. 画像
  2. ボタン
  3. スタックパネル

コントロールがそれを処理すると、バブリングは停止します。

これは簡単な説明です。より正確な説明については、WPF の文献を参照してください。

この種の機能は、"チェーン オブ レスポンシビリティ デザイン パターン" を表しています。これは、要求が要求である場合、責任チェーンに沿って渡され、その中の各オブジェクトにそれを処理する機会を与えることを示しています。リクエストの送信者は、誰がそれを処理するのか分からないため、分離が保証されます。詳細な説明については、リンクをたどってください。

ここでの目的は、この (一見 10 年以上前の) アイデアがどのようにして現在のテクノロジに組み込まれたかを示し、別の見方を提供することです。

最初はこれで十分だと思います。ここでさらに多くの類似点が収集されることを願っています。

乾杯、トルステン

4

2 に答える 2

0

WPF に固有のものではないと思いますが、オブザーバー デザイン パターンは、.Net および WPF でのすべてのイベント処理の基盤となるようです。

オブザーバーの設計パターンは、「オブジェクト間の 1 対多の依存関係を定義して、1 つのオブジェクトの状態が変化したときに、そのすべての依存関係が通知され、自動的に更新されるようにする」と説明されています。+= 演算子を使用した .Net では、このような状態の変化をサブスクライブします。その後、-= 演算子で登録を解除します。

于 2010-05-16T19:40:18.940 に答える
-1

CommandBindings は、私が開発する方法にとって非常に重要で基本的なものだと思います。

于 2009-11-20T21:06:33.693 に答える