前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >win10 uwp dataGrid Microsoft.Toolkit.Uwp.UI.Controls.DataGrid表格控件

win10 uwp dataGrid Microsoft.Toolkit.Uwp.UI.Controls.DataGrid表格控件

作者头像
林德熙
发布2018-09-18 17:58:48
2.8K0
发布2018-09-18 17:58:48
举报
文章被收录于专栏:林德熙的博客林德熙的博客

本文告诉大家如何在 UWP 使用 DataGrid ,提供两个方法使用。

Microsoft.Toolkit.Uwp.UI.Controls.DataGrid

这是比较推荐的库,使用也很简单

安装

首先需要通过 Nuget 搜索 Microsoft.Toolkit.Uwp.UI.Controls.DataGrid 安装

界面

xaml:

先引用库

代码语言:javascript
复制
    xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls"

然后写 DataGrid,需要的代码很少

代码语言:javascript
复制
        <controls:DataGrid x:Name="DataGrid" Margin="100,10,10,10" >         

        </controls:DataGrid>

这时就可以尝试按 F5 运行代码,虽然只有什么都没有的表

设置数据

在设置数据之前,需要先定义一个类作为数据,下面定义 Foo ,里面只有两个属性

代码语言:javascript
复制
    public class Foo
    {
        public string Name { get; set; }

        public string Url { get; set; }
    }

通过 DataGrid.ItemsSource 可以给数据

代码语言:javascript
复制
	        DataGrid.ItemsSource = new List<Foo>()
            {
                new Foo()
                {
                    Name = "lindexi",
                    Url = "lindexi.gitee.io"
                }
            };

这句代码需要写在构造,但是需要在 InitializeComponent 之后

代码语言:javascript
复制
	     public MainPage()
        {
            this.InitializeComponent();

            DataGrid.ItemsSource = new List<Foo>()
            {
                new Foo()
                {
                    Name = "lindexi",
                    Url = "lindexi.gitee.io"
                }
            };
        }

尝试按下F5,可以看到这个界面

也就是不需要写代码就可以自动创建表格,因为默认的 AutoGenerateColumns 就是 true ,如果需要自定义表头,请看下面

自定义

因为大家都不希望显示表头就是属性名,所以需要定义表格

首先需要关闭自动生成

代码语言:javascript
复制
        <controls:DataGrid x:Name="DataGrid" Margin="100,10,10,10" AutoGenerateColumns="False" d:DataContext="{d:DesignInstance local:Foo}">
        </controls:DataGrid>

然后在使用 DataGridTextColumn 写出一行

代码语言:javascript
复制
        <controls:DataGrid x:Name="DataGrid" Margin="100,10,10,10" AutoGenerateColumns="False" d:DataContext="{d:DesignInstance local:Foo}">
            <controls:DataGrid.Columns>
                <controls:DataGridTextColumn Header="名字" Binding="{Binding Name}"/>
                <controls:DataGridTextColumn Header="网站" Binding="{Binding Url}"/>
            </controls:DataGrid.Columns>

        </controls:DataGrid>

现在按下 F5 ,可以看到下面界面

属性

下面是一些其他的设置

GridLinesVisibility

是否显示表格线,如果设置为 None ,那么除了表头,其他地方都不显示表格线

如果设置为 Horizontal 就显示水平的表格线,如下图

还可以设置为 Vertical 只显示水平表格线,和设置 All 显示水平和垂直的表格线

交替行

通过 AlternateRowBackground 可以设置交替行的背景,下面会设置AlternatingRowBackground="LightGray"让第二行背景修改

代码语言:javascript
复制
        <controls:DataGrid x:Name="DataGrid" Margin="100,10,10,10" AutoGenerateColumns="False" d:DataContext="{d:DesignInstance local:Foo}" GridLinesVisibility="Vertical" AlternatingRowBackground="LightGray">
            <controls:DataGrid.Columns>
                <controls:DataGridTextColumn Header="名字" Binding="{Binding Name}"/>
                <controls:DataGridTextColumn Header="网站" Binding="{Binding Url}"/>
            </controls:DataGrid.Columns>

        </controls:DataGrid>
多选

通过设置 SelectionMode = Extended 可以支持多选,通过设置 SelectionMode 可以设置单选

其他的属性,大家试试就知道

请看:DataGrid XAML Control - Windows Community Toolkit

DataGrid

表格控件

我们先要知道我说的是哪个?

其实DataGrid就是表格控件,本文就是告诉大家如何做一个UWP 表格控件

一开始我是改ListView,ListView有个问题,就是你设置他的宽度实际是很小,这个如何做?

其实简单UWP ListView宽度过小,可以通过下面代码修改

代码语言:javascript
复制
                <ListView.ItemContainerStyle>
                    <Style TargetType="ListViewItem">
                        <Setter Property="HorizontalContentAlignment"
                                Value="Stretch"></Setter>
                    </Style>
                </ListView.ItemContainerStyle>

我们这个问题还可以做ListView对齐,ListBox内容对齐,ListBox宽度过小的解决

这样我们手动写表格,手动写表格宽度不好做,因为我们需要都是固定宽度

参见:http://www.cnblogs.com/FaDeKongJian/p/5860148.html

看到国内一个大神写的:https://github.com/zmtzawqlp/UWP-master/commits/master

现在可以使用: https://github.com/MyToolkit/MyToolkit/wiki/DataGrid

国外 https://liftcodeplay.com/2015/10/24/datagrid-alternatives-in-uwp/

需要钱的:https://www.syncfusion.com/products/uwp/sfdatagrid


本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Microsoft.Toolkit.Uwp.UI.Controls.DataGrid
    • 安装
      • 界面
        • 设置数据
          • 自定义
            • 属性
              • GridLinesVisibility
              • 交替行
              • 多选
          • 表格控件
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档