ボタンの可視性を MVVM の ViewModel ブール値にバインドします
Model-View-ViewModel (MVVM) パターンでは、UI 要素の可視性を ViewModel のブール値にバインドすることが、応答性の高い動的なユーザー インターフェイスを作成するために重要です。この記事では、ボタンの可視性を ViewModel のブール値にバインドする方法について説明します。
次の XAML コードについて考えてみましょう:
<code class="language-xml"><Button Command="{Binding SmallDisp}" CommandParameter="{Binding}" Cursor="Hand" Visibility="{Binding Path=AdvancedFormat}" /></code>
AdvancedFormat
が ViewModel のブール値の場合、BooleanToVisibilityConverter を使用して、ブール値をボタンの Visibility プロパティで受け入れられる Visibility 値に変換する必要があります。その方法は次のとおりです:
1. BooleanToVisibilityConverter を宣言します:
XAML リソース セクションで BooleanToVisibilityConverter を宣言します。
<code class="language-xml"><BooleanToVisibilityConverter x:Key="BoolToVis"></BooleanToVisibilityConverter></code>
2. コンバーターをボタンに適用します:
ボタン宣言に Converter 属性を追加し、BooleanToVisibilityConverter のリソース キーを指定します。
<code class="language-xml"><Button Command="{Binding SmallDisp}" CommandParameter="{Binding}" Cursor="Hand" Visibility="{Binding Path=AdvancedFormat, Converter={StaticResource BoolToVis}}" /></code>
コンバーターの実装:
BooleanToVisibilityConverter の一般的な実装は次のとおりです:
<code class="language-csharp">public class BooleanToVisibilityConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { bool isVisible = (bool)value; return isVisible ? Visibility.Visible : Visibility.Collapsed; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } }</code>
これらの手順に従うことで、ボタンの可視性を ViewModel のブール値に効果的にバインドでき、ユーザー インターフェイス要素がブール条件に動的に応答できるようになります。
以上がMVVM でボタンの可視性を ViewModel のブール値にバインドする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。