У меня есть шаблон данных для типа, который определяет кучу полей ввода данных, все с похожими настройками в текстовых полях, что-то вроде этого:
<DataTemplate x:Key="ContactInfo">
<DockPanel>
<HeaderedContentControl Header="Contact Name">
<TextBox Width="200" Text="{Binding Name, ValidatesOnDataErrors=True}"/>
</HeaderedContentControl>
<HeaderedContentControl Header="Contact Quest">
<TextBox Width="200" Text="{Binding Quest, ValidatesOnDataErrors=True}"/>
</HeaderedContentControl>
<HeaderedContentControl Header="Contact Favorite Color">
<TextBox Width="200" Text="{Binding Color, ValidatesOnDataErrors=True}"/>
</HeaderedContentControl>
</DockPanel>
</DataTemplate>
Я хотел бы уменьшить дублирование настолько, насколькоможно и устранить как можно больше дублированных свойств.Я знаю, что могу избавиться от повторяющегося атрибута Width, добавив
<DataTemplate.Resources>
<Style TargetType="x:Type TextBox">
<Setter Property="Width" Value="200"/>
</Style>
</DataTemplate.Resources>
к шаблону данных.Однако я также хочу избавиться от избыточной настройки «ValidatesOnDataErrors = True».
Я попытался изменить стиль, чтобы установить его таким образом:
<DataTemplate.Resources>
<Style TargetType="x:Type TextBox">
<Setter Property="Width" Value="200"/>
<Setter Property="Text.Binding.ValidatesOnDataErrors" Value="True"/>
</Style>
</DataTemplate.Resources>
, но во время компиляции он жалуетсяо ValidatesOnDataErrors не может быть разрешено.
Как сделать то, что я хочу?У меня есть более 50 полей для стилей, и я не хочу менять их все по одному, если решу сменить технику проверки.