UWP - получить текстовые изменения события Windows :: UI :: Xaml :: Controls :: TextBox.TextChanged - PullRequest
0 голосов
/ 08 декабря 2018

пытается понять, как получить текстовые изменения из UWP Windows :: UI :: Xaml :: Controls :: TextBox, когда происходит событие TextChanged.Я знаю, что могу хранить и сравнивать текст до и после, и, если потребуется, я выполню свою собственную обработку, чтобы определить, что изменилось, но текст может быть очень длинным, и это не может быть правильным или эффективным.Все остальные платформы (Android, iOS, Mac) сообщают вам, где произошли изменения и какая строка была вставлена.Я довольно новичок в UWP, так что, может быть, я что-то упустил?

void XAMLPage::Edit_TextChanged(Platform::Object^ sender, Windows::UI::Xaml::Controls::TextChangedEventArgs^ e)

Есть ли способ определить, что конкретно изменилось в тексте этого события?

1 Ответ

0 голосов
/ 09 декабря 2018
Событие

TextBox.BeforeTextChanging, вероятно, является лучшей частью API для отслеживания всех изменений TextBox.Text.

Событие запускается до обновления свойства Text, давая вамодновременный доступ к новым и старым Text значениям.

private void MyTextBox_BeforeTextChanging(TextBox sender, TextBoxBeforeTextChangingEventArgs args)
{
    var newText = args.NewText;
    var oldText = sender.Text;
    // TODO: process text change
}

Обратите внимание, что TextBox на самом деле не предназначен и не оптимизирован для обработки больших объемов ввода текста;Кроме того, в любом случае у вас есть два строковых экземпляра для до и после каждого изменения текста, поэтому беспокойство по поводу отслеживания изменений текста с помощью некоторой пользовательской реализации, не оптимизированной для большой эффективности обработки текста, не вызывает проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...