2010-08-16 9 views
3

Я создаю пользовательский элемент управления в WPF, это очень неоригинальный пример биржевого тикера, который я получаю из типа Control. Мой вопрос: есть ли какие-либо рекомендуемые шаблоны проектирования для самих элементов управления (в отличие от приложения)? Я использую MVVM для приложения в целом, но просто блуждаю, если это хорошая или плохая практика, чтобы использовать такой шаблон проектирования с самим элементом управления.Шаблоны проектирования пользовательского контроля WPF. MVVM?

Мои причины мышления с помощью MVVM для управления является то, что:

  • Это относительно сложный контроль, в том, что он имеет возможность построения графиков и зависимостей свойств Midprice, Средний и т.д. и т.п.
  • Для иметь ViewMOdel, как часть его, упростит (или даже возможно) модульное тестирование
  • Делает весь процесс кодирования более простым, особенно, поскольку у меня есть заказ ObservableCollection типов точек.

Любые мысли по этому вопросу были бы блестящими. Я просто не знаю, хорошо это или нет.

Большое спасибо

ответ

0

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

2

1) Будущая расширяемость - Я бы сказал, это ядро, когда дело доходит до управления разработкой.
2) Хороший дизайн API - создайте столько же, сколько и доказательство концепций.
3) Приходит шаблон - если это действительно большой контроль. Хорошо работать с MVVM. Но научитесь также компрометировать его. В некоторых случаях мы будем чувствовать, что при разработке компонентов строгое соблюдение MVVM делает управление действительно сложным.
4) Избегайте разоблачения свойств - добавьте свойства по мере необходимости. [Контроль чувствует это, как злоупотребление, если свойства более подвержены. ;)]
5) Сделать контроль бесшумным. См L for Lookless

Общие:
Try, чтобы сделать управление смешиваться от начала. Это поможет вам понять, насколько хорошо и полезно начинать. Прежде всего, это дает много удовлетворения и легко отслеживает полноту контроля.

Когда дело доходит до выбора конкретной функции, думаю, в двух аспектах:
1) удобство элемента управления и
2) Полнота ДУ.

Смежные вопросы