.net/XAML/C#: XAML のプロパティーは Visibility 型だけど Boolean の DataContext に束縛したい場合の最適解、あるいは BooleanToVisibilityConverter について
「Boolean
なプロパティー Hoge
が DataContext
に束縛された Window
のにある何かのコントロール(下の例では Button
)の Visibility
プロパティーを XAML
だけで簡単に Window
の DataContext
の Hoge
に束縛したい!」と思ったんだ。
<Window ... 略 ...> ... 略 ... <Button Visibility="{Binding 😂 Hoge ? Visible : Hidden したいんだけど!!😂}"/> ... 略 ... </Window>
『わからん。XAML なーんもワカラン… (けど何か良い方法はあるじゃろう… ヘ(゚∀゚ヘ) )』
と、思ったのだけど XAML
関連の知識が乏しいので msdn や stackoverflow を眺めるにも答えに近そうなキーワードがわからないのでもぞもぞ XAML 関連のインターフェースやら Binding やら Command やらを地味に読んで…いたのだけど、インターフェースの定義やら dynamic
な暗黒呪文の把握やら面倒くさそーなコトが必要ならプログラマー・スナオビリティー的に ctor
&状態変更が必要になるタイミングイベントに Visibility
プロパティーを更新する .cs 実装を書いた方がはやくて楽なんでぃゎ…とか思い始めたのね。
そこで、チョット諦めてそういう実装にしようかと思いながらも…
などと他力本願。そしたらとっちゃんさんがまさに求めていたそれ的な最適解を教えてくれました😃
つまり…
<Window ... 略 ...> <Window.Resources> <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/> </Window.Resources> ... 略 ... <Button Visibility="{Binding Hoge,Converter={StaticResource BooleanToVisibilityConverter}}"/> ... 略 ... </Window>
これだけで良かったんだね😂 カンタン、書く量も必要最低限で済んでますって感じ。とっても最適解♥
おまけ: その後の会話の続き
ありがとうございました😃