簡體   English   中英

如何在依賴屬性的 PropertyChangedCallback 中綁定異步方法?

[英]how to bind async method in PropertyChangedCallback of dependency property?

我需要從依賴屬性的 PropertyChangedCallback 調用異步方法。

我的依賴屬性:

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

您的方法簽名不正確。 PropertyChangedCallback的構造函數需要一個返回類型為void的委托,並且需要兩個參數:

public delegate void PropertyChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e)

您可以將您的回調標記為異步,但它必須是async void並且需要兩個參數作為輸入(即使您根本不使用這些參數):

private async void OnSetTextChanged(DependencyObject d, 
DependencyPropertyChangedEventArgs e)
{
    await SomeMethod();
    // other stuff
} 
public static readonly DependencyProperty MytextDependencyProperty =
            DependencyProperty.Register("MyText", typeof(string), typeof(TestClass), new PropertyMetadata(null, PropertyChangedCallbackAsync));

    private static async void PropertyChangedCallbackAsync(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
        await someMethod();
    }

static async void ,對我有用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM