Как связать асинхронный метод в PropertyChangedCallback свойства зависимости? - PullRequest
0 голосов
/ 24 июня 2019

Мне нужно вызвать асинхронный метод из PropertyChangedCallback свойства зависимости.

Свойство моей зависимости:

public static readonly DependencyProperty SetTextProperty =
     DependencyProperty.Register("SetText",
typeof(string),
typeof(UserControl1),
new PropertyMetadata("",
new PropertyChangedCallback(OnSetTextChanged)));
    private async Task OnSetTextChanged()
    {
        //// My implementations.
    }

1 Ответ

0 голосов
/ 24 июня 2019

Ваш метод подписи неверен.Конструктор PropertyChangedCallback нуждается в делегате с типом возврата void и требует двух параметров:

public delegate void PropertyChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e)

Вы можете пометить свой обратный вызов как асинхронный, но он должен быть async void и требует двух параметровв качестве входных данных (даже если вы не используете эти параметры вообще):

private async void OnSetTextChanged(DependencyObject d, 
DependencyPropertyChangedEventArgs e)
{
    await SomeMethod();
    // other stuff
} 
...