[英]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.