В моей 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 of the course это. Поскольку у меня есть возможность передать 'canExecute' как аргумент' CommandAsyncChecked', поэтому кнопка должна делать то, что говорит 'canExecute'. Я думаю, что мой аргумент в этом случае более логичен. Вы согласны? –
Да, это имеет смысл. –