在我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'所说的操作。我认为在这种情况下我的论点更合乎逻辑。你同意吗? –
是的,它确实有道理。 –