WPF - PageFunctions. Зачем они нужны? - PullRequest
4 голосов
/ 13 марта 2009

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

Может ли кто-нибудь дать мне простой, но конкретный пример того, когда PageFunction может быть правильным инструментом для работы?

Ответы [ 3 ]

4 голосов
/ 13 марта 2009

В основном, это похоже на шаблон для формализации ветвления в пользовательском интерфейсе на основе задач.

Допустим, у вас есть форма с галочкой для дополнительной функции, но эта функция требует дополнительной информации, которая слишком сложна для размещения на той же странице. Использование этого шаблона позволяет делегировать сбор информации другому компоненту.

Кроме того, применяется своего рода шаблон стратегии, поскольку у вас могут быть различные подсистемы, способные собирать одну и ту же информацию, все они наследуют PageFunction (of T), так что код, фактически вызывающий их, не должен знать любая деталь об этом.

Это всего лишь некоторые идеи, я не совсем изучил их.

4 голосов
/ 13 марта 2009

PageFunction in a page = диалоговое окно в настольном приложении (без Page).

Вы можете использовать функцию PageFunction каждый раз, когда используете диалоговое окно в настольном приложении и хотите, чтобы в вашей программе развивалось поведение, подобное веб-навигации.

1 голос
/ 09 октября 2009

Главное, что позволяют функции страницы, - это реализация рабочих процессов с подзадачами и управление стеком возврата.

Если вы просто полагаетесь на постраничную навигацию, трудно приостановить текущий путь навигации, сделать что-то еще, а затем вернуться и продолжить. PageFunctions позволяют это с помощью концепции возврата и разматывания стека навигации.

Я привел несколько реальных примеров этого здесь: http://www.paulstovell.com/wpf-navigation

...