ボタンの可視性を WPF の Boolean ViewModel プロパティにバインドします
MVVM (Model-View-ViewModel) 開発では、ボタンの可視性を ViewModel に格納されているブール値にバインドする必要がある場合があります。この単純なタスクには、XAML コーディングとコンバーターの使用が必要です。
XAML コード例 (ボタンがすでに存在すると仮定します):
<code class="language-xml"><Button Content="高级功能" /></code>
この例では、AdvancedFormat
は ViewModel のブール型プロパティです。ただし、WPF はブール値を Visibility プロパティに直接バインドできません。このギャップを埋めるには、BooleanToVisibilityConverter が必要です。
リソース内でコンバータを宣言します:
<code class="language-xml"><Window.Resources> <BooleanToVisibilityConverter x:Key="BoolToVis" /> </Window.Resources></code>
ボタン宣言にコンバーターを適用します:
既存の可視性バインディングを次のものに置き換えます:
<code class="language-xml"><Button Content="高级功能" Visibility="{Binding Path=AdvancedFormat, Converter={StaticResource BoolToVis}}" /></code>
Converter={StaticResource BoolToVis}
行を追加することで、BooleanToVisibilityConverter を使用してブール プロパティ AdvancedFormat
を Visibility 値に変換するようにバインディングに指示します。コンバーターは、プロパティが true の場合は Visible を返し、false の場合は Collapsed を返します。これにより、ViewModel のプロパティに基づいてボタンの表示/非表示を制御できるようになります。
このパターンは、ビュー (ボタンの可視性) とモデル (ブール値のプロパティ) の関心事を分離し、ビューがモデルの状態に基づいて可視性を決定する責任を負うことを保証します。
以上がWPF でボタンの可視性をブール型 ViewModel プロパティにバインドする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。