验证样式文本框但不在我的datepicker wpf上

时间:2014-07-09 18:30:44

标签: wpf datepicker

我有一个类似于此的日期选择器:

<Style TargetType="DatePickerTextBox">
    <Setter Property="Control.Template">
        <Setter.Value>
            <ControlTemplate>
                <TextBox Text="{Binding Path=SelectedDate, StringFormat='MM/dd/yyyy',RelativeSource={RelativeSource AncestorType=DatePicker}}"/>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

我的表单上也有一个文本框。我想在我的文本框上应用Validation.ErrorTemplate样式,但不在我的datepicker中的文本框上。有没有办法做到这一点?

我仍然需要在我的日期选择器上进行验证。

1 个答案:

答案 0 :(得分:0)

是的,声明样式并在其上设置 x:Key ,并使用 StaticResource 标记扩展将该样式仅绑定到外部textBox,以便所有textBox都不会继承那种风格。

<Style x:Key="OuterTextBoxStyle" TargetType="TextBox"
       BasedOn="{StaticResource {x:Type TextBox}}">
    <Setter Property="Validation.ErrorTemplate">
        <Setter.Value>
            <ControlTemplate>
                .....
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

并绑定到外部textBox,如下所示:

<TextBox Style="{StaticResource OuterTextBoxStyle}"/>