내용 보기

작성자

관리자 (IP : 172.17.0.1)

날짜

2020-07-10 03:55

제목

[WPF] DataTrigger에서 특정 수치보다 작거나 같은 조건 처리


Converter를 이용하여 '해당 수치 보다 작거나 같다'또는 '크거나 같다'조건 처리를 구현할 수 있다.

IsEqualOrLessThanConverter.cs

using System;
using System.Windows.Data;
 
namespace PureCommon.Converters
{
    public class IsEqualOrLessThanConverter : IValueConverter
    {
        public object Convert(
            object value,
            Type targetType,
            object parameter,
            System.Globalization.CultureInfo culture)
        {
            int intValue = 0;
            if(value != null)
                int.TryParse(value.ToString(), out intValue);
 
            int compareToValue = 0;
            if (parameter != null)
                int.TryParse(parameter.ToString(), out compareToValue);
 
            return intValue <= compareToValue;
        }
 
        public object ConvertBack(
            object value,
            Type targetType,
            object parameter,
            System.Globalization.CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
}
cs

위 처럼 조건에 맞는 IsEqualOrLessThanConverter Converter를 구현한다.

다음은 위 IsEqualOrLessThanConverter Converter를 이용하여 바인딩 처리된 StockCount속성의 값이 500보다 작거나 같은 경우 리스트 Row의 색상을 변경 처리 하는 DataTrigger 코드다.

XAML

<Style.Triggers>
    <DataTrigger Binding="{Binding StockCount, Converter={StaticResource IsEqualOrLessThanConverter}, ConverterParameter=500}" Value="True">
        <Setter Property="Background" Value="#FFFD5252"/>
    </DataTrigger>
</Style.Triggers>
cs


출처1

출처2