본문 바로가기
WPF

WPF MVVM TextBlock Foreground Binding

by leo21c 2023. 6. 16.
SMALL

WPF MVVM으로 View에 TextBlock을 Model에서 글자 색을 변경하기 위해서 Binding을 해서 사용할 수 있다.

TextBlock의 Foreground는 Color가 아니라 Brush를 사용한다.

 

아래 예제는 CheckBox를 값이 변경 될 때 TextBlock의 Text의 내용과 Color가 변경 되게 하는 예제이다.


<CheckBox IsChecked="{Binding bChecked}" HorizontalAlignment="Center">Change Text Color</CheckBox>
<TextBlock Text="{Binding checkStatus}" HorizontalAlignment="Center" Foreground="{Binding checkBrush}"/>

위와 같이 CheckBox를 만들어 bChecked = True이면 아래 TextBox의 checkStatus의 글자와 색상을 변경하도록 하려고 한다.


public string checkStatus { get; set; } = "Selected";
public System.Windows.Media.Brush checkBrush { get; set; }
    = System.Windows.Media.Brushes.Green;
private bool _bChecked = true;
public bool bChecked 
{
    get 
    {
        return _bChecked;
    }
    set 
    {
        _bChecked = value;
        if (_bChecked)
        {
            checkStatus = "Selected";
            checkBrush = System.Windows.Media.Brushes.Green;
        }
        else
        {
            checkStatus = "Not Selected";
            checkBrush = System.Windows.Media.Brushes.Gray;
        }
    }
}

기본 값으로 CheckBox는 선택되어져 있고 Selected 글자가 녹색으로 표시가된다.

Check 박스를 클릭해서 선택 해제를 하면 Not Seleted로 변경되고 회색으로 표시가 된다.

LIST