К сожалению, нет. Стиль может установить для свойства Text только Binding. Он не может установить атрибуты привязки. Кроме того, поскольку Binding не является DependencyObject, нет способа стилизовать привязку.
Один из вариантов, который должен сделать ваш код более лаконичным, - это использовать пользовательское MarkupExtension, которое создает желаемую привязку:
public class TimeOfDayBinding
: MarkupExtension
{
public PropertyPath Path { get; set; }
public override object ProvideValue(IServiceProvider serviceProvider)
{
var binding = new Binding()
{
Path = Path,
Converter = new TimeOfDayConverter(),
};
binding.ValidationRules.Add(new ValidateTimeOfDay()
{
ValidatesOnTargetUpdated = true,
});
return binding.ProvideValue(serviceProvider);
}
}
Учитывая ваши имена элементов управления, вы также можете использовать элемент управления выбора времени вместо TextBox. Проверьте этот вопрос: Какая на данный момент самая лучшая подборка свободного времени для WPF?