Xamarin.Forms DataGrid
控件出处
https://components.xamarin.com/
https://components.xamarin.com/gettingstarted/ZumeroDataGrid/true
效果图



上正文
Xamarin.forms项目右键->管理NUGET

Android、ios项目依次添加。
注册控件
Ios:
AppDelegate.cs
public
override
bool FinishedLaunching(UIApplication app, NSDictionary options)
{
global::Xamarin.Forms.Forms.Init();
Zumero.DataGridComponent.Init();
……
Android:
MainActivity.cs
protected
override
void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
global::Xamarin.Forms.Forms.Init(this, bundle);
Zumero.DataGridComponent.Init();
……
Forms 应用
Xaml:
xmlns:d="clr-namespace:Zumero;assembly=Zumero.DataGrid"
//声明
应用如下:
<d:DataGrid
x:Name="datagrid"
Rows="{Binding DataRows}"
BackgroundColor="Black"
RowHeight="40"
HeaderHeight="40"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand">
<d:DataGrid.FrozenColumn>
<d:Column
Width="40">
<d:Column.HeaderView>
<Label
Text="姓名"
BackgroundColor="Gray"
TextColor="Black"
XAlign="Center"
YAlign="Center"></Label>
</d:Column.HeaderView>
<d:Column.Template>
<DataTemplate>
<Label
Text="{Binding SampleName}"
BackgroundColor="White"
TextColor="Black"
XAlign="Center"
YAlign="Center"></Label>
</DataTemplate>
</d:Column.Template>
</d:Column>
</d:DataGrid.FrozenColumn>
<d:DataGrid.Columns>
<d:DataGrid.Columns>
<d:Column
Width="150">
<d:Column.HeaderView>
<Label
Text="文本"
BackgroundColor="Gray"
TextColor="Black"
XAlign="Center"
YAlign="Center"></Label>
</d:Column.HeaderView>
<d:Column.Template>
<DataTemplate>
<Label
Text="{Binding SampleDescription}"
BackgroundColor="White"
TextColor="Black"
XAlign="Center"
YAlign="Center"></Label>
</DataTemplate>
</d:Column.Template>
</d:Column>
</d:DataGrid.Columns>
</d:DataGrid>
属性说明
DataGrid
Rows="{Binding DataRows}" //数据源
固定写法对应后端代码
datagrid.Rows = new
ObservableCollection<object>
RowHeight="40" //行高
HeaderHeight="40" //表头高度
d:DataGrid.FrozenColumn //
Fxed列,固定不会随拖拽变动 同columns类似
d:DataGrid.Columns //列,格式同上文中内容
d:Column.HeaderView //列表头布局
d:Column.Template //列模板
DataTemplate //数据模板
d:DataGrid.Columns-》d:Column-》d:Column.HeaderView-》Label
d:Column.Template-》DataTemplate-》Label
事件绑定
<Button
Text="详细"
Clicked="OnCodeButtonClicked"
BorderWidth="0"
BackgroundColor="Green"
TextColor="White"></Button>
通过Clicked事件进行回调处理
CS代码:
初始化数据绑定:
OpenCode、OpenXaml 参数类型对应 Func<Page>
用于数据绑定按钮点击弹出对应上文中的 《详细》 Button
protected
override
void OnAppearing()
{
base.OnAppearing();
datagrid.Rows = new
ObservableCollection<object>
{
new
SampleObject
{
SampleName = "Presidents",
SampleDescription = "Shows images, dates. Includes headers and a frozen column.",
OpenCode = () => { return
new
PresidentsCode(); },
OpenXaml = () => { return
new
PresidentsXaml(); },
},
new
SampleObject
{
SampleName = "Countries",
SampleDescription = "Lots of rows. Unicode text.",
OpenCode = () => { return
new
CountriesCode(); },
OpenXaml = () => { return
new
CountriesXaml(); },
},
new
SampleObject
{
SampleName = "Dynamic",
SampleDescription = "Dynamic generation of one million 'virtual' rows.",
OpenCode = () => { return
new
DynamicCode(); },
OpenXaml = () => { return
new
DynamicXaml(); },
},
new
SampleObject
{
SampleName = "XSquared",
SampleDescription = "Includes slider controls with two way binding.",
OpenCode = () => { return
new
XSquaredCode(); },
OpenXaml = () => { return
new
XSquaredXaml(); },
},
};
}
事件弹窗:
void OnCodeButtonClicked(object sender, EventArgs args)
{
Button button = (Button)sender;
this.Navigation.PushAsync(((SampleObject)button.BindingContext).OpenCode());
}
Xamarin.Forms DataGrid的更多相关文章
- Xamarin.Forms 开发资源集合(复制)
复制:https://www.cnblogs.com/mschen/p/10199997.html 收集整理了下 Xamarin.Forms 的学习参考资料,分享给大家,稍后会不断补充: UI样式 S ...
- Xamarin.Forms 开发资源集合
收集整理了下 Xamarin.Forms 的学习参考资料,分享给大家,稍后会不断补充: UI样式 Snppts: Xamarin Forms UI Snippets. Prebuilt Templat ...
- Xamarin devexpress datagrid 样式
DevExpress的提供光与暗的内置,可以应用到主题GridControl改变其外观. 主题 iOS版 Android版 光(默认适用于iOS) 黑暗(默认为Android) 应用预定义的主题 ...
- xamarin.forms新建项目android编译错误
vs2015 update3 新建的xamarin.forms项目中的android项目编译错误.提示缺少android_m2repository_r22.zip,96659D653BDE0FAEDB ...
- Xamarin.Forms 简介
An Introduction to Xamarin.Forms 来源:http://developer.xamarin.com/guides/cross-platform/xamarin-forms ...
- Xamarin.Forms 免费电子书
Xamarin Evolve 正在举行,现在已经放出2本免费的Xamarin.Forms 免费电子书,据现场的同学说这两天还有Xamarin.Forms 重磅消息发布: Creating Mobile ...
- 老司机学新平台 - Xamarin Forms开发框架之MvvmCross插件精选
在前两篇老司机学Xamarin系列中,简单介绍了Xamarin开发环境的搭建以及Prism和MvvmCross这两个开发框架.不同的框架,往往不仅仅使用不同的架构风格,同时社区活跃度不同,各种功能模块 ...
- 老司机学新平台 - Xamarin Forms开发框架二探 (Prism vs MvvmCross)
在上一篇Xamarin开发环境及开发框架初探中,曾简单提到MvvmCross这个Xamarin下的开发框架.最近又评估了一些别的,发现老牌Mvvm框架Prism现在也支持Xamarin Forms了, ...
- 使用Xamarin.Forms平台开发移动应用指南
下载书:链接: http://pan.baidu.com/s/1c29H9KG 密码: 7esm 注:捣鼓虚拟机把Hyper-V关闭,后来Xamarin搞挂了,所以暂停翻译. 第1章 Xamarin. ...
随机推荐
- 《BackboneJS框架的技巧及模式》(2)
<BackboneJS框架的技巧及模式>(2) 本文紧接第一部分:<BackboneJS框架的技巧及模式(1)> 作者:chszs,转载需注明.博客主页:http://blog ...
- error in invoking target 'mkldflags ntcontab.o nnfgt.o' of makefile
error in invoking target 'mkldflags ntcontab.o nnfgt.o' of makefile 今天是2013-08-04,在安装oracle11g r2 数据 ...
- 小白鼓捣GIT的心得
这篇文章写给那些之前没接触过git的开发人员,算是一个参考吧,希望能有所帮助,我也会尽量写的详细. 今天刚开通了博客,趁着兴致,想着把积累已久的git问题也一并搞懂吧,于是乎吃完饭开始鼓捣,从下载GI ...
- Hu矩SVM训练及检测-----OpenCV
关键词:Hu矩,SVM,OpenCV 在图像中进行目标物识别,涉及到特定区域内是否存在目标物,SVM可在样本量较少情况下对正负样本(图片中前景背景)做出良好区分,图片基本特征包括诸如HOG.LBP.H ...
- [网络] SOCKET, TCP/UDP, HTTP, FTP
(一)TCP/UDP,SOCKET,HTTP,FTP简析 TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层: 网络层:IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议 传 ...
- HNC-局部联想脉络
局部联想脉络 概念分为:抽象概念.具体概念 对抽象概念用 五元组 和 语义网络 表达 对具体概念用 挂靠展开近似 表达 五元组:动态.静态.属性.值.效应.(u,g,u,z,r),用于表达抽象概念的外 ...
- Java基础知识强化87:BigInteger类之BigInteger加减乘除法的使用
1. BigInteger加减乘除法的使用 public BigInteger add(BigInteger val):加 public BigInteger subtract(BigInteger ...
- JAVA try-catch-finally-return
正常执行流程: try执行,遇到异常就跳到catch执行(以使得程序不会崩溃): 不管有没有异常catch,最后都执行finally 含return语句执行流程分析: 若try块中return ...
- linux elinks命令
Elinks是基于文本的免费浏览器,用于Unix及基于Unix的系统.Elinks支持 HTTP,HTTP Cookies以及支持浏览Perl和Ruby脚本.也很好的支持选项卡浏览.最棒的是它支持鼠标 ...
- 触摸事件 Touch MotionEvent ACTION
MotionEvent简介 当用户触摸屏幕时,将创建一个MontionEvent对象,MotionEvent包含了关于发生触摸的位置.时间信息,以及触摸事件的其他细节. 获取MontionEvent对 ...