> 백엔드 개발 > 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿