控件出处

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的更多相关文章

  1. Xamarin.Forms 开发资源集合(复制)

    复制:https://www.cnblogs.com/mschen/p/10199997.html 收集整理了下 Xamarin.Forms 的学习参考资料,分享给大家,稍后会不断补充: UI样式 S ...

  2. Xamarin.Forms 开发资源集合

    收集整理了下 Xamarin.Forms 的学习参考资料,分享给大家,稍后会不断补充: UI样式 Snppts: Xamarin Forms UI Snippets. Prebuilt Templat ...

  3. Xamarin devexpress datagrid 样式

    DevExpress的提供光与暗的内置,可以应用到主题GridControl改变其外观.   主题 iOS版 Android版 光(默认适用于iOS) 黑暗(默认为Android) 应用预定义的主题 ...

  4. xamarin.forms新建项目android编译错误

    vs2015 update3 新建的xamarin.forms项目中的android项目编译错误.提示缺少android_m2repository_r22.zip,96659D653BDE0FAEDB ...

  5. Xamarin.Forms 简介

    An Introduction to Xamarin.Forms 来源:http://developer.xamarin.com/guides/cross-platform/xamarin-forms ...

  6. Xamarin.Forms 免费电子书

    Xamarin Evolve 正在举行,现在已经放出2本免费的Xamarin.Forms 免费电子书,据现场的同学说这两天还有Xamarin.Forms 重磅消息发布: Creating Mobile ...

  7. 老司机学新平台 - Xamarin Forms开发框架之MvvmCross插件精选

    在前两篇老司机学Xamarin系列中,简单介绍了Xamarin开发环境的搭建以及Prism和MvvmCross这两个开发框架.不同的框架,往往不仅仅使用不同的架构风格,同时社区活跃度不同,各种功能模块 ...

  8. 老司机学新平台 - Xamarin Forms开发框架二探 (Prism vs MvvmCross)

    在上一篇Xamarin开发环境及开发框架初探中,曾简单提到MvvmCross这个Xamarin下的开发框架.最近又评估了一些别的,发现老牌Mvvm框架Prism现在也支持Xamarin Forms了, ...

  9. 使用Xamarin.Forms平台开发移动应用指南

    下载书:链接: http://pan.baidu.com/s/1c29H9KG 密码: 7esm 注:捣鼓虚拟机把Hyper-V关闭,后来Xamarin搞挂了,所以暂停翻译. 第1章 Xamarin. ...

随机推荐

  1. SuppressWarnings的警告

    简介:java.lang.SuppressWarnings是J2SE 5.0中标准的Annotation之一.可以标注在类.字段.方法.参数.构造方法,以及局部变量上.作用:告诉编译器忽略指定的警告, ...

  2. Android 自定义View (四) 视频音量调控

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/24529807 今天没事逛eoe,看见有人求助要做一个下面的效果,我看下面一哥们说 ...

  3. Linux磁盘设备文件(sda,sdb,sdc…)变化问题

    在Linux下往往会碰到这样的问题,磁盘的设备文件,比如/dev/sda, sdb, sdc等等在某些情况下会混乱掉,比如sda变成了sdb或者sdc变成了sdb等等,这样无形中会导致磁盘设备管理的混 ...

  4. Java中字符串内存位置浅析

    前言 之前写过一篇关于JVM内存区域划分的文章,但是昨天接到蚂蚁金服的面试,问到JVM相关的内容,解释一下JVM的内存区域划分,这部分答得还不错,但是后来又问了Java里面String存放的位置,之前 ...

  5. 将用户信息保存到Cookie中

    /** * 把用户保存到Cookie * * @param request * @param response * @param member */ private void rememberPwdA ...

  6. TCP_DEFER_ACCEPT的坑

    我实现了一个server,支持HTTP协议和内部私有协议,为了简化部署,我设计成一个端口同时兼容两种协议的客户端.根据连接后到达的消息头自动识别客户端协议.这种事情的传统做法是,accept后加入ep ...

  7. java09数组的使用

    /** * 数组:存储相同数据类型的一组数据! * 声明一个数组就是在内存中开辟了一连串的连续空间! * * 数组和String 都是 引用数据类型 * 数组的使用 */ @Test public v ...

  8. spring-qualifier解释

    如果一个class有两个对应的beanId,在Autowired的时候,必须指定Qualifier("指定其中一个beanId"). org.springframework.bea ...

  9. 推荐一个CMMI认证查询网站

    随着软件企业的增多和意识的增强,越来越多公司开始做CMMI的认证评估,由于国内网速和CMMI官网的网站综合原因,打开速度超级慢. 所以本文推荐一个CMMI认证查询网站,认证后的结果查询可以点这里查询: ...

  10. vs2013+sql server2012 +win8.1+entity framework + linq

    项目右键添加类选择“ADO.NET实体数据模型” 选择“空……” 项目会自动产生后缀.edmx的文件(ModelTest.edmx),会自动添加引用System.Runtime.Serializati ...