亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從 MyToolkit 自定義 UWP DataGrid?

如何從 MyToolkit 自定義 UWP DataGrid?

C#
紅顏莎娜 2023-04-29 16:39:10
我正在構建一個 UWP 應用程序,我需要將 DataGrid 分成四個相等的部分,如下所示:但是到目前為止,沒有任何方法可以設置單元格的顏色。有沒有辦法在 C# 中以編程方式執行此操作?編輯:經過大量研究,我最終使用 Grid、一堆標簽 + 邊框和一個虛擬文本框從頭開始開發。最后的結果其實還不錯:
查看完整描述

1 回答

?
米脂

TA貢獻1836條經驗 獲得超3個贊

有一種簡單的方法可以滿足您的要求。您只需要定義 DataTemplateDataGridTemplateColumn.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; }

}


查看完整回答
反對 回復 2023-04-29
  • 1 回答
  • 0 關注
  • 151 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號