在我xaml
我有一個按鈕和一個TextBlock如何保持按鈕啓用,同時執行異步任務
<TextBlock Text="{Binding AText}" FontSize="20"/>
<Button Content="Click" Command="{Binding MyCommand}" Grid.Row="1"/>
,並在我的ViewModel我有下面的代碼
let aText = self.Factory.Backing(<@ self.AText @>, "Initial Text")
let asyncTask x = async {
self.AText <- "Loading"
do! Async.Sleep(5000)
self.AText <- "Loaded"
}
member self.AText with get() = aText.Value and set(v) = aText.Value <- v
member self.MyCommand = self.Factory.CommandAsyncChecked(asyncTask, fun _ -> true)
當我按一下按鈕,它會被禁用,直到它完成asyncTask
。我認爲設置canExecute
爲true
將改變行爲,但它沒有!
如何控制按鈕的行爲?
你想做些什麼?因爲目前的行爲是最合乎邏輯的。 –
@FoggyFinder當然是。由於我可以選擇將'canExecute'作爲參數傳遞給'CommandAsyncChecked',因此按鈕應該執行'canExecute'所說的操作。我認爲在這種情況下我的論點更合乎邏輯。你同意嗎? –
是的,它確實有道理。 –