Как настроить UWP DataGrid из MyToolkit? - PullRequest
0 голосов
/ 22 июня 2019

Я создаю приложение UWP, и мне нужно разделить DataGrid на четыре равные части, например:

colored grid

Но пока ничего не получалось установить цвет ячеек. Есть ли способ сделать это программно в C #?

1 Ответ

0 голосов
/ 25 июня 2019

Есть простой способ получить ваше требование. Вам просто нужно определить DataTemplate для DataGridTemplateColumn.CellTemplate и привязать фон к какому-либо одному свойству в вашем пользовательском классе.

Пожалуйста, посмотрите мой следующий простой пример кода:

<controls:DataGrid
AutoGenerateColumns="False"
ItemsSource="{Binding tests}" GridLinesVisibility="All">
        <controls:DataGrid.Columns>
            <!-- Name Column -->
            <controls:DataGridTemplateColumn Header="Name">
                <controls:DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal"  Background="{Binding Color1}">
                            <TextBlock
                        Text="{Binding Name}" />
                        </StackPanel>
                    </DataTemplate>
                </controls:DataGridTemplateColumn.CellTemplate>
            </controls:DataGridTemplateColumn>
            <controls:DataGridTemplateColumn Header="Name">
                <controls:DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal"  Background="{Binding Color1}">
                            <TextBlock
                        Text="{Binding Name}" />
                        </StackPanel>
                    </DataTemplate>
                </controls:DataGridTemplateColumn.CellTemplate>
            </controls:DataGridTemplateColumn>
            <controls:DataGridTemplateColumn Header="Name">
                <controls:DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal"  Background="{Binding Color1}">
                            <TextBlock
                        Text="{Binding Name}" />
                        </StackPanel>
                    </DataTemplate>
                </controls:DataGridTemplateColumn.CellTemplate>
            </controls:DataGridTemplateColumn>
            <controls:DataGridTemplateColumn Header="Name">
                <controls:DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal"  Background="{Binding Color2}">
                            <TextBlock
                        Text="{Binding Name}" />
                        </StackPanel>
                    </DataTemplate>
                </controls:DataGridTemplateColumn.CellTemplate>
            </controls:DataGridTemplateColumn>
            <controls:DataGridTemplateColumn Header="Name">
                <controls:DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal"  Background="{Binding Color2}">
                            <TextBlock
                        Text="{Binding Name}" />
                        </StackPanel>
                    </DataTemplate>
                </controls:DataGridTemplateColumn.CellTemplate>
            </controls:DataGridTemplateColumn>
            <controls:DataGridTemplateColumn Header="Name">
                <controls:DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal"  Background="{Binding Color2}">
                            <TextBlock
                        Text="{Binding Name}" />
                        </StackPanel>
                    </DataTemplate>
                </controls:DataGridTemplateColumn.CellTemplate>
            </controls:DataGridTemplateColumn>
        </controls:DataGrid.Columns>
    </controls:DataGrid>
public sealed partial class MainPage : Page
{
    public ObservableCollection<Test> tests { get; set; }

    public MainPage()
    {
        this.InitializeComponent();
        tests = new ObservableCollection<Test>();
        for (int i = 0; i < 15; i++)
        {
            if (i < 7)
            {
                tests.Add(new Test() { Name = "Name " + i, Color1 = new SolidColorBrush(Colors.Yellow), Color2 = new SolidColorBrush(Colors.Red) });
            }
            else
            {
                tests.Add(new Test() { Name = "Name " + i, Color1 = new SolidColorBrush(Colors.Green), Color2 = new SolidColorBrush(Colors.LightBlue) });
            }
        }
        this.DataContext = this;
    }
}

public class Test
{
    public string Name { get; set; }
    public SolidColorBrush Color1 { get; set; }
    public SolidColorBrush Color2 { get; set; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...