ホームページ > バックエンド開発 > C++ > MVVM でボタンの可視性を ViewModel のブール値にバインドする方法は?

MVVM でボタンの可視性を ViewModel のブール値にバインドする方法は?

Linda Hamilton
リリース: 2025-01-13 10:45:43
オリジナル
711 人が閲覧しました

How to Bind Button Visibility to a ViewModel Boolean Value in MVVM?

ボタンの可視性を 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート