Вопрос свойства зависимости WPF ... нужен совет о том, что делать в этом конкретном сценарии: - PullRequest
0 голосов
/ 21 февраля 2009

Я пытаюсь создать игрока сукоду (например, кроссворд) в WPF, и я понимаю, что у меня есть целая куча элементов управления, которые должны знать сетку судоку для работы.

Поэтому я думаю, что объект Sudoku Grid был бы хорошим кандидатом для создания свойства зависимостей. Я собираюсь начать работу, но у меня есть некоторые вопросы:

  1. Кто должен владеть свойством зависимостей SudokuGrid? Я думаю, что элемент интерфейса главного окна должен.

  2. Стоит ли устанавливать его как свойство общей зависимости, где все пользовательские элементы управления, представляющие часть сетки судоку, просто добавляют себя в свойство с помощью метода .AddOwner ()?

OR

Установить его как прикрепленное свойство, определенное в главном окне, и разрешить соответствующим образом настраивать дочерние элементы управления?

Однако я не хочу, чтобы дочерним элементам управления было разрешено устанавливать свое собственное значение свойства сетки, поэтому в настоящее время я склоняюсь к общему свойству зависимости, но я не уверен, что оно делает то, что, как я думаю, делает.

В конечном итоге мне нужно одно свойство, в котором, если оно установлено для родительского элемента пользовательского интерфейса, все дочерние элементы пользовательского интерфейса, которые знают об этом свойстве, будут иметь одинаковое значение, переопределяя любое предыдущее значение / параметр. Совместная зависимость делает это?

Я знаю, что это немного затянуто, но любая помощь будет высоко ценится!

1 Ответ

1 голос
/ 21 февраля 2009

Я думаю, что вам нужно прикрепленное свойство с Inherits FrameworkPropertyOption. То, что каждый элемент управления, который хочет знать о сетке, может просто найти сетку, получив значение присоединенного свойства (при условии, что оно установлено выше в дереве). В этой статье рассматриваются вложенные свойства и способы их настройки.

В качестве альтернативы вы можете попробовать шаблон модели представления модели (MVVM) и реализовать сетку Судоку как класс модели представления, каждая из которых является отдельным классом модели представления. Таким образом, вся головоломка судоку полностью отделена от пользовательского интерфейса, и пользовательский интерфейс может просто привязаться к ней с помощью соответствующих шаблонов данных.

Для получения дополнительной информации о шаблоне MVVM см. Следующее: http://www.codeproject.com/KB/WPF/MVCtoUnitTestinWPF.aspx http://blogs.msdn.com/johngossman/archive/2005/10/08/478683.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...