Использование TextChangedEventArgs в пользовательском элементе управления - PullRequest
0 голосов
/ 17 октября 2019

Я создаю пользовательский элемент управления для своего приложения. У этого элемента управления есть текстовое свойство, о котором я хотел бы уведомлять об изменениях.

Поскольку это текстовое свойство, я решил использовать класс Windows.UI.XAML.Controls.TextChangedEventArgs существующего фреймворка. Но я не могу понять, как создать новый экземпляр, и не могу найти полезную документацию.

Кто-нибудь когда-либо использовал этот класс повторно?

РЕДАКТИРОВАТЬ: Для ясности, это ПОЛЬЗОВАТЕЛЬСКИЙ элемент управления ... НЕ USERCONTROL. Мне не нужен или не нужен TextBox в элементе управления. Существует Text DependencyProperty, который изменяется. Я ИЗДаю , не подписываюсь. Я искал использовать встроенный класс TextChangedEventArgs. Это степень моего вопроса.

1 Ответ

1 голос
/ 18 октября 2019

Вы не можете создать новый TextChangedEventArgs, который является специальным параметром события для события TextChanged, но вы можете экспортировать TextChangedEventArgs, зарегистрировав новое событие.

Предполагая, что у вас естьTextBox в вашем пользовательском элементе управления, вы можете зарегистрировать событие TextChanged для вашего пользовательского элемента управления.

UserControl1.xaml.cs

public event EventHandler<TextChangedEventArgs> TextChanged;

private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
    TextChanged?.Invoke(this, e);
}

Конечно, вы также можете создавать свои собственные EventArgs для передачи необходимых параметров.

public class MyTextChangedEventArgs : EventArgs
{
    public string Text { get; set; }
    public MyTextChangedEventArgs(string text)
    {
        Text = text;
    }
}

UserControl1.xaml.cs

public event EventHandler<MyTextChangedEventArgs> TextChanged;

private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
    string text = (sender as TextBox).Text;
    TextChanged?.Invoke(this, new MyTextChangedEventArgs(text));
}

BestС уважением.

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