2010-07-12 106 views
2

我有一个定义一组数据输入字段,所有的文本框类似的设置,像这样一类数据模板:如何通过XAML中的样式设置绑定属性?

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

我想,以减少重复,并尽可能消除尽可能多的重复属性。我知道我可以通过向DataTemplate添加

<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

可能是this将会有帮助。

+0

这很有帮助,因为它正是我所看到的问题,它无助于我希望有一个更简单的解决方案。如果没有更好的事情出现,我可能会使用这种方法。 不幸的是,这个答案的投票需要比我更多的声望,否则我会。 – 2010-07-13 13:53:07

+0

我知道有声望:-) – 2011-06-27 15:41:16

+0

-1:请避免仅链接的答案。 – ANeves 2014-09-04 16:02:40

相关问题