WPF Validation: свойства проверки стиля / шаблона - PullRequest
0 голосов
/ 20 сентября 2010

У меня есть экран WPF, который отображает количество входных данных TextBox.У меня есть стиль, который обрабатывает все проверки:

<Style x:Key="TextBoxStyle" BasedOn="{x:Null}" TargetType="{x:Type TextBox}">
    <!-- etc etc -->
    <Setter Property="Validation.ErrorTemplate">
        <Setter.Value>
            <ControlTemplate>
                <Border Grid.Column="0" BorderBrush="Red" BorderThickness="1">
                    <StackPanel>
                        <AdornedElementPlaceholder />
                    </StackPanel>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
    <Style.Triggers>
        <Trigger Property="Validation.HasError" Value="True">
            <Setter Property="ToolTip" Value="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=(Validation.Errors)[0].ErrorContent}" />
        </Trigger>
    </Style.Triggers>
</Style>

Единственное, что я должен применить к TextBox - это сообщить привязке, что она проверяется.Поскольку у меня есть достаточно много таких полей над приложением, я бы предпочел не повторять это объявление тошноты для всего приложения.

<TextBox Text="{Binding TargetValue, ValidatesOnExceptions=true, ValidatesOnDataErrors=true, NotifyOnValidationError=true}" Style="{DynamicResource TextBoxStyle}" />

Я попытался добавить свойство Text.Binding.ValidatesOnDataErrorsстиль, который не работает и не выглядит как правильный способ сделать это.Можно ли создать стиль привязки по умолчанию?Любые предложения приветствуются!

1 Ответ

2 голосов
/ 20 сентября 2010

К сожалению, нет способа переопределить значения по умолчанию для свойств привязки.Альтернативный подход, который вы можете использовать, - это создать собственное расширение Binding с ValidatesOnException и ValidatesOnDataError, оба из которых имеют значение true.Таким образом, вы можете сделать что-то вроде:

<TextBox Text="{BindingWithValidation TargetValue}/>

Вы можете использовать базовый класс, предоставленный в этой статье , чтобы немного упростить создание собственного расширения разметки привязки.

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