Sinisa Janjetovic Ответов: 1

Как показать сообщение об ошибке ниже текстового поля вместо какого-либо символа


У меня есть код для проверки.ErrorTemplate:

<Style TargetType="{x:Type TextBox}">
            <Setter Property="Validation.ErrorTemplate">
                <Setter.Value>
                    <ControlTemplate>
                        <DockPanel LastChildFill="True">
                            <TextBlock DockPanel.Dock="Bottom" Foreground="Red" HorizontalAlignment="Center"
FontSize="14" FontWeight="Bold"  Margin="5,0,0,0" ToolTip="{Binding ElementName=adornerPlaceholder, Path=AdornedElement.(Validation.Errors)[0].ErrorContent}">{0}</TextBlock>
                            <AdornedElementPlaceholder Name="adornerPlaceholder"></AdornedElementPlaceholder>
                        </DockPanel>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>



Вторая часть кода, свойство-это:

публичный строковый пароль
{
get { return _passWord; }
набор
{
if (_passWord == значение)
{
вернуть;
}
_значение пароля;

List<string> errors = новый список<string>();


боол действует = истина;

если (значение == нуль || значение == "")
{
errors.Add("пароль не может быть пустым.");
SetErrors("пароль", ошибки);
действительный = ложь;
}


если (допустимо)
{
ClearErrors("Пароль");
}

OnPropertyChanged(new PropertyChangedEventArgs("пароль"));
}
}



Он работает отлично, но чего я хочу добиться, так это как получить полный текст сообщения об ошибке ниже текстового поля, в которое были введены данные и распознаны в моей коллекции ошибок как неправильные?

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

Что я уже пробовал:

Исследовали в сети, но безуспешно.

Richard MacCutchan

- Он отлично работает"
Очевидно, нет.

Afzaal Ahmad Zeeshan

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

Sinisa Janjetovic

Не могли бы вы прислать мне образец?

BillWoodruff

посмотрите, может ли использование всплывающих подсказок удовлетворить ваши потребности:

https://wpf-tutorial.com/control-concepts/tooltips/

1 Ответов

Рейтинг:
0

Gerry Schmitz

Один из них обычно реализует интерфейс IDataErrorInfo, который использует границы и всплывающие подсказки для передачи ошибок данных.

Как реализовать логику проверки на пользовательских объектах | Microsoft Docs[^]

(В противном случае сообщения затеняли бы пользовательский интерфейс).


BillWoodruff

+5