我不知道這是一個很好的做法,通過使用x:bind將事件綁定到異步任務方法?我基本上使用MVVM,其中我的ViewModel包含一些異步任務方法,並且我想x:將異步任務方法綁定到我的視圖中的事件(實際上它工作正常),但是,我聽到我們不應該把事件變成異步任務。可以將事件x:綁定到異步任務方法嗎?
下面是一些代碼例如:
事件X:結合異步任務方法
SomeViewModel.cs
public class SomeViewModel
{
public async Task DoneAsync()
{
//...some code
}
}
SomeView.xaml
<button context="click" click="{x:bind DoneAsync}"/>
爲了安全起見,我所做的就是在代碼背後使用異步任務。
SomeView.xaml
<button context="click" click="Done_clicked"/>
SomeView.cs
public async void Done_clicked(...)
{
await vm.DoneAsync();
}
據我所知,無論是否使用'async',你都必須綁定到'void'方法 –
爲什麼使用x:bind而不是命令? – AzzamAziz
這是異步無效的,沒關係。您不必爲UI事件處理程序使用異步任務。 –