Сделайте границу ComboBox красной, если элемент еще не выбранC#

Место общения программистов C#
Ответить
Anonymous
 Сделайте границу ComboBox красной, если элемент еще не выбран

Сообщение Anonymous »

Я новичок в C# и WPF и, честно говоря, начал учиться самостоятельно только на этой неделе. Я пытаюсь создать раскрывающееся меню, которое будет выделено красным (сигнализируя, что это поле является обязательным), пока элемент не будет выбран. В моем списке нет пустого элемента, но состояние по умолчанию — пустой вариант. После выбора одного элемента вы не сможете снова получить доступ к пустой опции.
Я попробовал кучу разных подходов и считаю, что понимаю, что мне нужно создать стиль. шаблон, который запрашивает проверку для изменения цвета границы. Однако я сталкиваюсь с некоторыми проблемами. Он никогда не видит ошибок проверки при запуске. Я думаю, что у меня просто фундаментальное непонимание того, как использовать проверки (в основном, синтаксические требования для создания моей собственной проверки и ее использования для этого триггера).
Если есть какой-либо способ выполнить это без проверок, что могло бы быть проще для меня, но я не видел в Интернете ничего, описывающего это. Будем признательны за любую помощь.
Мой стиль шаблона XAML ComboBox: МОЙ код XAML ComboBox: Мой код проверки:

Код: Выделить всё

    public class SelectionValidationRule : ValidationRule
{
public override ValidationResult Validate(object value, CultureInfo cultureInfo)
{
if (value is string selectedItemString)
{
if (string.IsNullOrEmpty(selectedItemString))
{
return new ValidationResult(false, null);
}
}
else if (value == null || string.IsNullOrEmpty(value.ToString()))
{
return new ValidationResult(false, null);
}
else if (value is ComboBox comboBox)
{
if (comboBox.SelectedIndex == -1)
{
return new ValidationResult(false, null);
}
}

return new ValidationResult(true, null);
}
}
И да, я включил класс SelectionValidationRule в свой код XAML!

Подробнее здесь: https://stackoverflow.com/questions/786 ... t-selected
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»