如何通过XAML中的样式设置绑定属性?

时间:2010-07-12 20:08:49

标签: validation binding

我有一个类型的数据模板,用于定义一堆数据输入字段,所有这些字段都在文本框中具有相似的设置,如下所示:

<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>

到DataTemplate。但是,我也想摆脱多余的“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 个答案:

答案 0 :(得分:1)

可能this会有所帮助。