WPF
WPF MVVM TextBlock Foreground Binding
leo21c
2023. 6. 16. 10:02
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