Можно ли запретить ввод символов (кроме числовых и точки) в окне WPF, не применяя при этом обработчик события?
я новичок в разработке WPF-приложений. Вопрос сам дан в заголовке. Необходимо чтобы при вводе в ячейку таблицы пользователь мог вводить только числа. Подсветка ячейки красным тоже не подойдет, нужно прям ограничение вводимых символов. Можно ли это реализовать без затрагивания файла xaml.cs?
Ответы (1 шт):
Автор решения: Mikhail
→ Ссылка
У меня на avalonia реализована данная функция (wpf подобное), я привязывал к свойству текста переменную, и в сеттере делал обработку данных, самое главное это сделать до this.RaiseAndSetIfChanged (аналог INotifyPropertyChange), чтобы не символ даже не появлялся на милисикунду. У меня тут строковая стринговая переменная тк пользователь может вводить и текст и числа
public string? AutoNumInitValue
{
get => _autoNumInitValue;
set
{
if (TypeOfAutoNum == 0)
{
if (!value.All(Char.IsDigit))
{
value = "0";
}
}
if (TypeOfAutoNum == 1)
{
if (!value.All(Char.IsLetter) || value.Length > 1)
{
value = "";
}
}
this.RaiseAndSetIfChanged(ref _autoNumInitValue, value);
}