0

我有一个应用程序,我想在所有文本框中应用相同的绑定进行验证。

<TextBox Height="23" HorizontalAlignment="Left" Margin="71,76,0,0" Name="textBox1" VerticalAlignment="Top" Width="229" Style="{StaticResource ResourceKey=errorMsgStyle}">            
**<TextBox.Text>
            <Binding RelativeSource="{RelativeSource Self}" Path="Text" UpdateSourceTrigger="Explicit">
                <Binding.ValidationRules>
                    <Validators:RequiredFieldValidationRule ErrorMessage="Required field1"/>
                </Binding.ValidationRules>
            </Binding>
        </TextBox.Text>**

    </TextBox>

(**) 中的部分对于所有文本框都是相同的,但这是我不想为所有人重复复制和粘贴的内容。

不幸的是,该应用程序不使用 MVVM。有人可以告诉我如何将此验证绑定定义为模板(或类似模板)并在任何地方使用吗?

4

2 回答 2

0
<Window.Resources>
    <Binding x:Key="Validation" RelativeSource="{RelativeSource Self}" Path="Text" UpdateSourceTrigger="Explicit">
        <Binding.ValidationRules>
            <Validators:RequiredFieldValidationRule ErrorMessage="Required field1"/>
        </Binding.ValidationRules>
    </Binding>
</Window.Resources>

例子:

<TextBox Text="{StaticResource Validation}"/>
于 2013-02-26T22:40:40.990 回答
0

您可以通过在样式中设置绑定来做到这一点。

     <Style x:Key="ValidatedTextBox" TargetType="TextBox">
        <Setter Property="Text">
            <Setter.Value>
                <Binding RelativeSource="{RelativeSource Self}" Path="Text" UpdateSourceTrigger="Explicit">
                    <Binding.ValidationRules>
                        <Validators:RequiredFieldValidationRule ErrorMessage="Required field1"/>
                    </Binding.ValidationRules>
                </Binding>
            </Setter.Value>
        </Setter>
    </Style>

当然,所有的文本框都将绑定到同一个源......但这可能是你想要的。

于 2013-02-26T22:29:20.687 回答