2018-8-10-win10-uwp-dataGrid
title | author | date | CreateTime | categories |
---|---|---|---|---|
win10 uwp dataGrid
|
lindexi
|
2018-08-10 19:16:51 +0800
|
2018-2-13 17:23:3 +0800
|
Win10 UWP
|
本文告诉大家如何在 UWP 使用 DataGrid ,提供两个方法使用。
Microsoft.Toolkit.Uwp.UI.Controls.DataGrid
这是比较推荐的库,使用也很简单
安装
首先需要通过 Nuget 搜索 Microsoft.Toolkit.Uwp.UI.Controls.DataGrid 安装
界面
xaml:
先引用库
xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls"
然后写 DataGrid,需要的代码很少
<controls:DataGrid x:Name="DataGrid" Margin="100,10,10,10" > </controls:DataGrid>
这时就可以尝试按 F5 运行代码,虽然只有什么都没有的表
设置数据
在设置数据之前,需要先定义一个类作为数据,下面定义 Foo ,里面只有两个属性
public class Foo
{
public string Name { get; set; } public string Url { get; set; }
}
通过 DataGrid.ItemsSource 可以给数据
DataGrid.ItemsSource = new List<Foo>()
{
new Foo()
{
Name = "lindexi",
Url = "lindexi.gitee.io"
}
};
这句代码需要写在构造,但是需要在 InitializeComponent 之后
public MainPage()
{
this.InitializeComponent(); DataGrid.ItemsSource = new List<Foo>()
{
new Foo()
{
Name = "lindexi",
Url = "lindexi.gitee.io"
}
};
}
尝试按下F5,可以看到这个界面
也就是不需要写代码就可以自动创建表格,因为默认的 AutoGenerateColumns 就是 true ,如果需要自定义表头,请看下面
自定义
因为大家都不希望显示表头就是属性名,所以需要定义表格
首先需要关闭自动生成
<controls:DataGrid x:Name="DataGrid" Margin="100,10,10,10" AutoGenerateColumns="False" d:DataContext="{d:DesignInstance local:Foo}">
</controls:DataGrid>
然后在使用 DataGridTextColumn 写出一行
<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"
让第二行背景修改
<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就是表格控件,本文就是告诉大家如何做一个UWP 表格控件
一开始我是改ListView,ListView有个问题,就是你设置他的宽度实际是很小,这个如何做?
其实简单UWP ListView宽度过小,可以通过下面代码修改
<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/
2018-8-10-win10-uwp-dataGrid的更多相关文章
- win10 uwp 使用 Microsoft.Graph 发送邮件
在 2018 年 10 月 13 号参加了 张队长 的 Office 365 训练营 学习如何开发 Office 365 插件和 OAuth 2.0 开发,于是我就使用 UWP 尝试使用 Micros ...
- Win10 UWP开发实现Bing翻译
微软在WP上的发展从原来的Win7到Win8,Win8.1,到现在的Win10 UWP,什么是UWP,UWP即Windows 10 中的Universal Windows Platform简称.即Wi ...
- Win10/UWP开发—使用Cortana语音与App后台Service交互
上篇文章中我们介绍了使用Cortana调用前台App,不熟悉的移步到:Win10/UWP开发—使用Cortana语音指令与App的前台交互,这篇我们讲讲如何使用Cortana调用App的后台任务,相比 ...
- Win10 UWP应用发布流程
简介 Win10 UWP应用作为和Win8.1 UAP应用不同的一种新应用形式,其上传至Windows应用商店的流程也有了一些改变. 这篇博文记录了我们发布一款Win10 UWP应用的基本流程,希望为 ...
- win10 uwp 列表模板选择器
本文主要讲ListView等列表可以根据内容不同,使用不同模板的列表模板选择器,DataTemplateSelector. 如果在 UWP 需要定义某些列的显示和其他列不同,或者某些行的显示和其他行不 ...
- win10 uwp 获得元素绝对坐标
有时候需要获得一个元素,相对窗口的坐标,在修改他的位置可以使用. 那么 UWP 如何获得元素坐标? 我提供了一个方法,可以获得元素的坐标. 首先需要获得元素,如果没有获得元素,那么如何得到他的坐标? ...
- win10 uwp 毛玻璃
毛玻璃在UWP很简单,不会和WPF那样伤性能. 本文告诉大家,如何在 UWP 使用 win2d 做毛玻璃. 毛玻璃可以使用 win2D 方法,也可以使用 Compositor . 使用 win2d 得 ...
- win10 uwp 读取保存WriteableBitmap 、BitmapImage
我们在UWP,经常使用的图片,数据结构就是 BitmapImage 和 WriteableBitmap.关于 BitmapImage 和 WriteableBitmap 区别,我就不在这里说.主要说的 ...
- 【广告】win10 uwp 水印图床 含代码
本文主要是广告我的软件. 图床可以加速大家写博客上传图片的时间,通过简化我们的操作来得到加速. 在写博客的时候,我们发现,我们需要上传一张图片,需要先打开图片,然后选择本地图片,然后上传. 但是我经常 ...
- win10 uwp 商业游戏 1.2.1
上一个游戏已经告诉大家如何写多个游戏,现在继续写这个无聊的游戏 希望大家在看这篇文章之前先看win10 uwp 商业游戏,在这个文章告诉了大家如何创建游戏. 修改数值 可以从上一篇的博客的游戏看到升级 ...
随机推荐
- k8s进行与容器交互时报错:unable to upgrade connection: Unauthorized在k8s实现kubectl exec -it pod_ID sh出错解决
在创建pod时,进入pod失败 kubectl exec -it nginx-deployment-d55b94fd-xcrtg sh error检查问题,一直找不到答案,通过logs发现,同样不能实 ...
- 小程序中this.setData的使用和注意事项
前言:微信小程序中经常需要用到this.setData({})把变量值渲染到视图层,那到底什么是this.setData,如何使用?需要注意哪些?作为一个初学者,分享一点我的经验,希望大家批评指正. ...
- UILabel颜色逐渐变化
@interface UIViewController () @property (weak, nonatomic) IBOutlet UIView *backView; //空间是用storyBoa ...
- go语言从例子开始之Example25.通道方向
当使用通道作为函数的参数时,你可以指定这个通道是不是只用来发送或者接收值.这个特性提升了程序的类型安全性. Example: package main import "fmt" / ...
- 选择恐惧症的福音!教你认清MVC,MVP和MVVM(转:示例挺好,不太赞同画图)
转自:http://zjutkz.net/2016/04/13/%E9%80%89%E6%8B%A9%E6%81%90%E6%83%A7%E7%97%87%E7%9A%84%E7%A6%8F%E9%9 ...
- Hashtable、HashMap、TreeMap、ConcurrentHashMap、ConcurrentSkipListMap区别
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11444013.html 并发场景下的Map容器使用场景 如果对数据有强一致要求,则需使用Hashtab ...
- 【JavaWeb项目】一个众筹网站的开发(二)架构搭建之架构测试
1.dao层和pojo都是使用mbg生成,基本的CRUD以及JavaBean 2.将mbg放在dao层,一旦dao层打包以后mbg就删除掉 一.创建数据库用于测试 数据库名称:scw_0325 SQL ...
- java基础学习笔记六(继承)
继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父 ...
- boost库:多线程
1.线程管理 最重要的一个类是boost::thread,是在boost/thread.hpp里定义的,用来创建一个新线程. #include <boost/thread.hpp> #in ...
- models 创建表时容易出现的错误 及解决办法