Лучше использовать DataTrigger вместо привязки данных? - PullRequest
2 голосов
/ 29 ноября 2010

Если я хотел скрыть (или изменить видимость, цвет и т. Д.) Элемента в WPF, лучше ли использовать DataTrigger или привязку с конвертером?

Звучит как два способа достижения одной и той же цели.,Когда лучше использовать один поверх другого?

Ответы [ 2 ]

7 голосов
/ 29 ноября 2010

Я могу рассказать вам о своем опыте.

Я использую привязку данных с конвертерами для следующих случаев:

  1. Для свойства Visibility (есть встроенный конвертерв WPF).
  2. В приложениях Silverlight (хотя в библиотеке Microsoft.Expression.Interactions есть совместимые с silverlight триггеры данных, они не так удобны, как триггеры WPF).
  3. Если исходный объект содержитмного возможных значений.Например, в enum to image converter легче написать 5 предложений if-else, чем 5 datatggger.

Datatriggers:

  1. Если я хочу изменить несколько различных свойств одновременно (фон, видимость, толщина).
  2. Для кистей (Это не 'Легко создать кисть в коде C #, используя шестнадцатеричный номер цвета.
  3. Если я хочу применить статические ресурсы.
  4. Они могут использоваться для отображения анимации и запуска раскадровок.

Иногда я предпочитаю подход MVVM: я создаю дополнительные свойства необходимого типа в модели представления, чтобы их можно было связать напрямую без преобразования.

0 голосов
/ 30 ноября 2010

Краткий ответ: это зависит.

Триггеры данных предлагают операции равенства только с одним источником данных.

Если вам нужны параметры или привязка к нескольким значениям, вам нужно использовать конвертер.

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