Background setter color binding ๋ฌธ์ œ

์•ˆ๋…•ํ•˜์„ธ์š”. ํ˜น์‹œ WinUI3 xaml ๊ฐœ๋ฐœ ์ค‘์— background binding ๊ด€๋ จํ•ด์„œ ๊ถ๊ธˆํ•ด์„œ ์งˆ๋ฌธ ๋‚จ๊ฒจ์š”!

ModelView ์˜ ๊ฒฝ์šฐ์—๋Š”

public record User
{
    public int Id { get; set; }

    public string FirstName { get; set; } = string.Empty;

    public string LastName { get; set; } = string.Empty;

    public string Address { get; set; } = string.Empty;

    public Color color { get; set; } = Colors.Red;

    public string ColorValue { get; set; } = "Red";
}

xaml ์˜ ๊ฒฝ์šฐ์—๋Š”

        <TextBlock
            Grid.Row="0"
            Grid.Column="0"
            Style="{StaticResource TitleTextBlockStyle}"
            Text="DataGrid" 
            />
        <controls:DataGrid
            Grid.Row="1"
            Grid.Column="0"
            toolkit:ScrollBarExtensions.KeepVerticalExpanded="True"
            toolkit:ScrollBarExtensions.VerticalAnnotations="{x:Bind Annotations, Mode=OneWay}"
            AutoGenerateColumns="False"
            GridLinesVisibility="All"
            ItemsSource="{x:Bind Users}"
            >
            <controls:DataGrid.Columns>
                <controls:DataGridTextColumn
                    Binding="{Binding Id}"
                    Header="ID" >
                    <controls:DataGridTextColumn.CellStyle>
                        <Style TargetType="controls:DataGridCell">
                            <Setter Property="Background" Value="{Binding color}"/>
                        </Style>
                    </controls:DataGridTextColumn.CellStyle>
                </controls:DataGridTextColumn>
                <controls:DataGridTextColumn
                    Binding="{Binding FirstName}"
                    Header="Key" />
                <controls:DataGridTextColumn
                    Binding="{Binding LastName}"
                    Header="Expect Value" 
                   />
                <controls:DataGridTextColumn
                    Binding="{Binding Address}"
                    Header="Result Value" />
            </controls:DataGrid.Columns>
        </controls:DataGrid>

์„ ์–ธ์€ ObservableCollection Users ์ด๊ณ 
Header ID Field์˜ background color๋ฅผ bindingํ•ด์„œ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€๋ฐ Value๊ฐ’์— Blue๋ฅผ ๋„ฃ๋Š” ๊ฒฝ์šฐ์—๋Š” ๋ฐ”๋กœ ์ƒ‰์ด ์ ์šฉ์ด ๋˜๋Š”๋ฐ binding ํ• ๊ฒฝ์šฐ์—๋Š” ์ž˜ ์•ˆ๋˜๋„ค์š”
ํ˜น์‹œ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์ด๋‚˜ ๊ด€๋ จ ๋ฌธ์ œ๋ฅผ ๊ทน๋ณตํ•˜์‹  ๋ถ€๋ถ„ ๊ณต์œ ํ•ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!!!

Background์˜ ๋ฐ์ดํ„ฐ ์œ ํ˜•์€ Brush์ž…๋‹ˆ๋‹ค. Color๋ฅผ Brush ์œ ํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” IValueConverter ๊ตฌํ˜„ํ•ด์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

2๊ฐœ์˜ ์ข‹์•„์š”