Разрешить пользователю вводить пробелы между словами, но удалять начальные и конечные пробелы при использовании PropertyChanged
В следующем коде я выполняю поиск, как только вводится седьмой символ. Все работает нормально, за исключением того, что пользователь не может вводить пробелы, потому что, как и ожидалось, они удаляются каждый раз, когда вводится новый символ, так как я вызываю Trim()
метод на PropertyChanged
событие. То, что я хотел бы сделать, это дать пользователю возможность печатать пробелы, но удалять любые начальные и конечные пробелы. Другими словами, если пользователь вводит пробелы до и после слова или предложения, которое он / она ищет, я хочу удалить пробелы и просто искать слово.
Например, если пользователь печатает...<space><space><space>The Cat<space><space><space>
Я хочу, чтобы программа игнорировала пробелы и искала The Cat
как только последний t
введен
Каков наилучший способ сделать это?
XAML:
<TextBox x:Name="myTextBox" Text="{Binding InputFileNameChanged, UpdateSourceTrigger=PropertyChanged}"/>
ViewModel.CS
public string InputFileNameChanged
{
get { return _inputFileName; }
set {
_inputFileName = value.Trim();
if (_inputFileName.Length == 7) {
// search file
}
}
}
1 ответ
На вашем месте я бы не обрезал фоновое поле, а только обрезал перед выполнением проверки / поиска. т.е.
public string InputFileNameChanged
{
get { return _inputFileName; }
set {
_inputFileName = value;
var trimmed = value.Trim();
if (trimmed.Length >= 7) {
// search file using trimmed
}
}
}