Как установить свойство привязки через стиль в XAML? - PullRequest
2 голосов
/ 13 июля 2010

У меня есть шаблон данных для типа, который определяет кучу полей ввода данных, все с похожими настройками в текстовых полях, что-то вроде этого:

<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 полей для стилей, и я не хочу менять их все по одному, если решу сменить технику проверки.

1 Ответ

1 голос
/ 13 июля 2010

Может быть , это будет полезным.

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