>백엔드 개발 >C++ >값에 따라 WPF DataGrid 셀 색상을 변경하는 방법은 무엇입니까?

값에 따라 WPF DataGrid 셀 색상을 변경하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2025-01-23 09:22:11327검색

How to Change WPF DataGrid Cell Colors Based on Values?

데이터 값에 따라 WPF DataGrid 셀 색상 변경

WPF DataGrid 컨트롤을 사용할 때 일반적으로 데이터 값을 기반으로 셀의 시각적 모양을 사용자 정의해야 합니다. DataGrid.CellStyle을 사용하는 것은 쉬운 접근 방식처럼 보일 수 있지만 실수로 개별 셀이 아닌 전체 행에 스타일을 적용할 수 있습니다. 셀별 색상 지정을 구현하는 다른 방법을 살펴보겠습니다.

열 기반 스타일링

열의 특정 셀에 스타일을 적용하려면 각 DataGridTextColumn의 ElementStyle 속성을 사용자 지정하는 것이 좋습니다. 예를 들어 이름이 "John"인 셀의 배경색을 변경하려면 다음 코드를 사용합니다.

<code class="language-xml"><DataGridTextColumn Binding="{Binding Name}">
    <DataGridTextColumn.ElementStyle>
        <Style TargetType="TextBlock">
            <Style.Triggers>
                <Trigger Property="Text" Value="John">
                    <Setter Property="Background" Value="LightGreen" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </DataGridTextColumn.ElementStyle>
</DataGridTextColumn></code>

가치 변환기

더 복잡한 음영 처리 논리의 경우 값 변환기를 사용할 수 있습니다. 다음은 이름 값을 해당 브러시에 매핑하는 예입니다.

<code class="language-csharp">public class NameToBrushConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        string input = (string)value;
        switch (input)
        {
            case "John":
                return Brushes.LightGreen;
            default:
                return DependencyProperty.UnsetValue;
        }
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotSupportedException();
    }
}</code>

사용방법:

<code class="language-xml"><Window.Resources>
    <local:NameToBrushConverter x:Key="NameToBrushConverter" />
</Window.Resources>
...
<DataGridTextColumn Binding="{Binding Name}">
    <DataGridTextColumn.ElementStyle>
        <Setter Property="Background" Value="{Binding Name, Converter={StaticResource NameToBrushConverter}}" />
    </DataGridTextColumn.ElementStyle>
</DataGridTextColumn></code>

속성 바인딩

또는 셀의 배경 속성을 원하는 브러시를 반환하는 속성에 직접 바인딩할 수도 있습니다. 이 접근 방식에서는 색상 종속성이 변경될 때마다 속성 변경 알림이 발생하는지 확인하세요.

위 내용은 값에 따라 WPF DataGrid 셀 색상을 변경하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.