0

私は WPF で (クロスワードのような) スコドゥ プレーヤーを作成しようとしていますが、機能するために数独グリッドを知る必要があるコントロールがたくさんあることに気付きました。

このため、Sudoku Grid オブジェクトは、依存関係プロパティを作成するための適切な候補になると思います。仕事を始めようとしていますが、いくつかの疑問が残ります。

  1. SudokuGrid 依存関係プロパティを所有するのは誰ですか? メイン ウィンドウの UI 要素が必要だと考えています。

  2. 数独グリッドの一部を表すすべてのユーザー コントロールが .AddOwner() メソッドを介してプロパティに追加するだけの共有依存関係プロパティとして設定する必要がありますか?

また

メイン ウィンドウで定義された添付プロパティとして設定し、それに応じて子ユーザー コントロールを設定できるようにしますか?

ただし、子コントロールが独自のグリッド プロパティ値を設定できるようにしたくないので、現時点では共有依存関係プロパティに傾倒していますが、それが私が思っていることを実行するかどうかはわかりません。

最終的に私が望むのは、親UI要素に設定されている場合、そのプロパティを知っているすべての子UI要素が同じ値を共有し、以前の値/設定をオーバーライドする1つのプロパティです。共有依存関係はそれを行いますか?

私はそれが少し長くなっていることを知っていますが、どんな助けでも大歓迎です!

4

1 に答える 1

1

必要なのは、InheritsFrameworkPropertyOptionでアタッチされたプロパティだと思います。グリッドについて知りたいすべてのコントロールは、アタッチされたプロパティの値を取得することでグリッドを見つけることができます(ツリーの上位に設定されていると仮定します)。この記事では、添付されたプロパティとその設定方法について説明します。

または、モデルビュービューモデル(MVVM)パターンを試して、各セルが個別のビューモデルクラスであるビューモデルクラスとして数独グリッドを実装することもできます。このようにして、数独パズル全体がUIから完全に分離され、UIは適切なデータテンプレートを使用してそれにバインドできます。

MVVMパターンの詳細については、次を参照してください:http: //www.codeproject.com/KB/WPF/MVCtoUnitTestinWPF.aspxhttp ://blogs.msdn.com/johngossman/archive/2005/10/08/478683。 aspx

于 2009-02-21T07:08:13.653 に答える