Xamarin.Formsでボタンの2重/同時押し抑止

ReactiveCommand使ってるんだけど。

2重押し、同時押しできちゃう。

最初、SemaphoreSlimをVMから見れるServiceに置いて、各CommandのSubscribeの中に書いてたけど。

これだとすべての処理に入れなきゃならないので大変。

上記をラップしてメソッド化したが排他効かない。というか順に呼ばれちゃう。。。(´・ω・`)

AsyncReactiveCommandを使って2重押しは抑止できたが他のボタンとの同時押しができちゃう。。。(´・ω・`)

ググること数日、AsyncReactiveCommandにsharedCanExecuteを指定するとできることが判明。!∑(゜∀゜)

みたいな感じで。

Rxすげー。

(参考サイト)

https://qiita.com/toRisouP/items/c6fba9f01e6d15dabd79

 

%d人のブロガーが「いいね」をつけました。