BooleanToVisibilityConverter を使用して MVVM でのボタンの可視性を制御する
MVVM アーキテクチャでよくある要件は、ボタンの可視性を ViewModel 内のブール型プロパティにリンクすることです。このアプローチにより、懸念事項が明確に分離されます。 これを達成する方法を見てみましょう:
直接結合の問題
ボタンの Visibility
プロパティを ViewModel のブール型プロパティ (例: AdvancedFormat
) に直接バインドすることは機能しません。 ブール値は Visibility
列挙型と直接互換性がありません。
解決策: コンバーターの活用
解決策は、BooleanToVisibilityConverter
を導入することです。このコンバータは、ViewModel のブール値を対応する Visibility
値 (Visible または Collapsed) に変換します。
コンバーターの実装:
まず、コンバータを XAML リソースに追加します。
<code class="language-xml"><BooleanToVisibilityConverter x:Key="BoolToVis" /></code>
ボタンのバインドの変更:
次に、XAML でボタン宣言を更新してコンバーターを利用します。
<code class="language-xml"><Button Visibility="{Binding AdvancedFormat, Converter={StaticResource BoolToVis}}" /></code>
説明:
{Binding AdvancedFormat}
部分は、ボタンの Visibility
を ViewModel の AdvancedFormat
プロパティにリンクします。Converter={StaticResource BoolToVis}
は BooleanToVisibilityConverter
を適用してブール値を変換します。 このコンバータは、true
(表示) と false
(折りたたみ) からの変換を処理します。ベストプラクティス:
BooleanToVisibilityConverter
のようなコンバーターの使用は、MVVM の標準的な方法です。これにより、ViewModel はデータとロジックに重点を置き、View はプレゼンテーションの問題を処理します。 これにより、コードの保守性と可読性が向上します。
以上がMVVM ViewModel でボタンの可視性をブール値にバインドするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。