Я пытаюсь, чтобы текстовое поле принимало только определенные символы.WPF - MVVM Текстовое поле ограничено конкретными символами
Мой TextBox обязан следующее:
private string _CompanyID;
public string CompanyID
{
get { return _CompanyID; }
set
{
_CompanyID = UniversalHelpers.sReturnCorrectColumnName(value);
OnPropertyChanged("CompanyID");
}
}
Где это функция, которая вызывается:
public static string sReturnCorrectColumnName(string sInput)
{
if(!string.IsNullOrWhiteSpace(sInput))
return Regex.Replace(sInput, @"[^a-zA-Z]", string.Empty).ToUpper();
else
return sInput;
}
(я позволяю только-Z & A-Z, ничего).
Наконец мой TextBox выглядит следующим образом:
<TextBox Text="{Binding ExcelBindings.CompanyID, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" />
То, что я не понимаю, что пользователь может еще что-то, что он хочет писать, даже если мой режим установлен в TwoWay.
Что я делаю неправильно?
Да, это не работает хорошо.Внедрите IDataErrorInfo и/или INotifyDataErrorInfo и просто отметьте экземпляр с ошибкой, когда они содержат неправильные символы. – Will
Пользовательский интерфейс не будет автоматически обновляться с изменениями, внесенными вами при вводе пользователем. Он сохранен правильно (только a-z & A-Z), но ваш пользовательский интерфейс не будет автоматически обновляться даже с привязкой TwoWay. – rmn36
Есть ли способ обновить пользовательский интерфейс без регистрации нового свойства Dependency? –