Можно ли использовать UserControls, если для этого требуется код? - PullRequest
0 голосов
/ 19 декабря 2011

Я создаю довольно большое приложение WP7 и получаю от этого удовольствие. Он основан на Pivot и имеет довольно много сводных страниц. Я динамически добавляю и удаляю сводные страницы в зависимости от того, какой «режим» приложения выбрал пользователь, чтобы приложение выглядело как можно проще. Пока все идет хорошо, мое приложение быстро реагирует, а не занимает память или ресурсы и выполняет фоновую загрузку по мере необходимости.

Слой модели содержит всю мою бизнес-логику, которая отражает суть приложения. Он чистый и отделен от слоев модели и вида.

Уровень View-Model представляет собой абстракцию модели в той степени, в которой ему необходимо взаимодействовать с представлением, а также содержит аспекты приложения и сеанса работы в целом. Он содержит объекты, которые представляют модель способом, с которым необходимо взаимодействовать представлению. Модель представления сохраняет состояние приложения в изолированном хранилище и поддерживает забрасывание камнями.

Слой View содержит множество элементов, элементов управления, стилей, ресурсов и т. Д., Как в xaml, так и в соответствующем коде. Мне нравится Blend и дизайнер Xaml в Visual Studio 2010, но я все еще кодирую / настраиваю объекты представления в коде из-за природы, в которой они взаимодействуют друг с другом. Код, стоящий за объектами представления, становится достаточно большим, но все еще отражает только состояние представления, а не состояние приложения. Я довольно часто использовал пользовательские элементы управления, так как это позволяет мне создавать многократно используемые компоненты на многих сводных страницах, однако пользовательские элементы управления не подходят для смешивания. Что меня беспокоит, так это то, что мое представление может стать более сложным, чем нужно, и потерять способность координировать дизайн пользовательского интерфейса с помощью таких инструментов, как blend выражения.

Настраивая представление таким образом и используя повторно используемые элементы управления, я значительно сократил свой Xaml и не страдаю от раздутых файлов Xaml, о которых упоминали другие разработчики, но потерял способность координировать действия с Blend. Можно ли найти счастливую среду? Должен ли я смотреть на разработку пользовательских элементов управления?

[редактировать]

Спасибо за ваш ответ. Я думаю, что все сводится либо к Xaml с дизайнером, либо к пользовательским элементам управления с большим количеством кода позади. С тех пор, как я перешел к пользовательскому контролю, мое мышление вернулось к тому, чтобы делать вещи вручную, а не с дизайнером (лучше, черт побери, ты прав!). Я думаю, я должен превратить свои пользовательские элементы управления в настраиваемые элементы управления с поддержкой скинов или просто продолжать работать так, как я есть, и избегать использования дизайнера. Это немного картошки, но я не хочу впадать в вредные привычки.

1 Ответ

0 голосов
/ 19 декабря 2011

Пользовательские элементы управления (или шаблонные элементы управления), насколько я вижу, не имеют прямого отношения к вашему вопросу.Пользовательские элементы управления - это просто элементы управления, которые добавляют новые свойства, события и методы к существующему элементу управления и по-прежнему могут «проектироваться» конструктором.

Создание пользовательского интерфейса в коде затрудняет разработку приложения с использованием Blend(и даже дизайнера VS), потому что единственный способ увидеть интерфейс - запустить приложение.

Большая часть логики, которая создает пользовательский интерфейс, может быть заменена с помощью диспетчера визуальных состояний.Используйте состояния элементов управления, чтобы создать их для определенных режимов просмотра.Только когда вам нужны дополнительные / новые состояния, вам нужно будет создавать пользовательский элемент управления.

Поскольку ваш вопрос немного широка, не стесняйтесь добавлять комментарии или расширять свой вопрос, чтобы я мог добавить дополнительные сведения или удалить этот ответ.когда это полная ерунда :) 1007 *

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