DataTrigger может использоваться только для проверки определенного значения - например, он не может проверять диапазоны.DataTrigger может быть объединен для нескольких условий (MultiTrigger) - ValueConverter может преобразовывать только одно значение в другое.(Конечно, MultiValueConverter может принимать много значений (и прослушивать обновления для всех из них - но все равно возвращать только одно значение.))
Эти два значения могут использоваться совместно, хотя, скажем, наличие ValueConverterкоторый проверяет, находится ли значение ниже 50 (возвращает true), чтобы активировать DataTrigger (поместите его в Связывание DataTrigger).
Итак, в моей книге нет золотого правила - только обстоятельства, которые могут привести к одномуиз них непригодны (или очень, очень трудно наносятся).