Я могу рассказать вам о своем опыте.
Я использую привязку данных с конвертерами для следующих случаев:
- Для свойства
Visibility
(есть встроенный конвертерв WPF). - В приложениях Silverlight (хотя в библиотеке
Microsoft.Expression.Interactions
есть совместимые с silverlight триггеры данных, они не так удобны, как триггеры WPF). - Если исходный объект содержитмного возможных значений.Например, в enum to image converter легче написать 5 предложений if-else, чем 5 datatggger.
Datatriggers:
- Если я хочу изменить несколько различных свойств одновременно (фон, видимость, толщина).
- Для кистей (Это не 'Легко создать кисть в коде C #, используя шестнадцатеричный номер цвета.
- Если я хочу применить статические ресурсы.
- Они могут использоваться для отображения анимации и запуска раскадровок.
Иногда я предпочитаю подход MVVM: я создаю дополнительные свойства необходимого типа в модели представления, чтобы их можно было связать напрямую без преобразования.