2009-02-21 10 views
0

Je tente de créer un lecteur sukodu (comme des mots croisés) dans WPF, et je me rends compte que j'ai tout un tas de contrôles qui auront besoin Connaître la grille de sudoku pour fonctionner. Pour cette raison, je pense que l'objet Sudoku Grid serait un bon candidat pour créer une propriété de dépendance. Je suis sur le point de commencer le travail, mais j'ai quelques questions en suspens:WPF Dependency Property question ... besoin de conseils sur ce qu'il faut faire dans ce scénario particulier:

  1. Qui devrait posséder la propriété de dépendance SudokuGrid? Je pense que l'élément d'interface utilisateur de la fenêtre principale devrait. Dois-je le définir en tant que propriété de dépendance partagée, où tous les contrôles utilisateur qui représentent une partie d'une grille de sudoku s'ajoutent simplement à la propriété via la méthode .AddOwner()?

OU

le configurer comme une propriété attachée, définie à la fenêtre principale, et permettre à l'utilisateur contrôle de l'enfant à mettre en place en conséquence? Je ne veux pas vraiment que les contrôles enfants soient autorisés à définir leur propre valeur de propriété de grille, donc pour le moment je penche pour la propriété de dépendance partagée, mais je ne suis pas sûr qu'elle fasse ce que je pense. En fin de compte ce que je veux est une propriété où, si elle est définie sur un élément d'interface utilisateur parent, tous les éléments d'interface utilisateur enfants qui connaissent la propriété partageront la même valeur, en remplaçant toute valeur/tout paramètre antérieur. La dépendance partagée fait-elle cela?

Je sais que c'est un peu long, mais toute aide serait grandement appréciée!

+0

Coding4Fun a un jeu Sudoku - http://blogs.msdn.com/coding4fun/archive/2006/11/06/999502. aspx – bendewey

Répondre

1

Je pense que ce que vous voulez est une propriété jointe avec le Inherits FrameworkPropertyOption. Que nous tous les contrôles qui veulent savoir sur la grille peut juste trouver la grille en obtenant la valeur de la propriété attachée (en supposant qu'il est placé plus haut dans l'arbre). This article passe en revue les propriétés jointes et comment les configurer.

D'autre part, vous pouvez essayer le modèle MVVM (Model View View-Model) et implémenter la grille Sudoku en tant que classe view-model, chaque cellule étant une classe de modèle de vue ceperate. De cette façon, l'ensemble du sudoku puzzel est complètement séparé de l'interface utilisateur et l'interface utilisateur peut simplement se lier à l'aide de modèles de données appropriés.

Pour plus d'informations sur le modèle MVVM Sé les éléments suivants: http://www.codeproject.com/KB/WPF/MVCtoUnitTestinWPF.aspx http://blogs.msdn.com/johngossman/archive/2005/10/08/478683.aspx

Questions connexes