【WPF】 Bool型プロパティを反転してBindingしたい

ViewModelに定義したBool型のプロパティを反転(否定)してBindingしたくなった。
例えば処理中を表すプロパティがtrueの場合にボタンなどの各種コントロールをDisable状態にして触らせないようにしたい。

こんな変数をViewModelに定義して

private bool _Executing = false;
public bool Executing
{
    get => _Executing;
    set
    {
        _Executing = value;
        RaisePropertyChanged(nameof(Executing));
    }
}

XAMLにはこんなふうに書きたかった。しかしこのような書き方はできない

<Button IsEnabled="{Binding !Executing}">
  OK
</Button>

調べるとConverterを間に挟むしか無さそうということが分かった。でもこんなもののためにわざわざ専用のConverterを作成するのも面倒だなと思ったら、良さそうなライブラリを見つけた。

www.nuget.org

これを利用するとXAML内に式が書けるようで以下のように書ける。便利!

xmlns:qc="http://QuickConverter.CodePlex.com/"

<Button IsEnabled="{qc:Binding '!$P', P={Binding Executing}}">
  OK
</Button>