在讲具体函数之前,先聊一聊,Xamarin工程是具体怎样实现跨平台的。

比如Android平台,如截图:

在初始化的时候,初始化Xamarin平台的包,然后直接new了一个app对象。

而这个app对象的类,就是在Xamarin平台下编辑的一个类。由此,绕过了Android平台,而在只需要在Xamarin平台下更改代码。 IOS和UWP也是类似。
IOS的初始化在FinishedLaunching中,UWP的初始化在MainPage的默认创造函数中。

接着我们来看下C#里的数据结构

在MainPage.xaml.cs中可以看到,MainPage是一个部分类(partial),所以其他部分在哪呢?
右键-》转到定义。可以看到还有一部分在MainPage.xaml.g.cs中,且该文件是自动生成且隐藏的。(.g.cs里都是加载平台内容,或者转换代码,一般情况不需要改动)

其他xaml文件也是一样,每个xaml问下都有一个.cs和一个自动生成且隐藏的.g.cs文件。

接下来讲一下xaml文件,xaml文件本质是XML(可扩展标记语言)跟网页编程用的HTML非常像。

依旧以按钮的代码举例

描述代码块类似与编程里的“{ }” 可以理解为作用域,具体方法有两种:
1.如“按钮_1”的<主体名 "内容1" />
2.如“按钮_2”的<主体名 “内容1”> “内容2” </主体名>
这个主体既可以是类,也可以是类的某一个属性。

关于x:Class="XamarinApp1.MainPage"
表示在这个XAML文件中在“XamarinApp1”名称空间中定义了一个“MainPage”的新类(派生自ContentPage)
?派生自ContentPage的MainPage类?是不是很熟悉啊?,没错,就是上文提到的.g.cs里的类。

想完整了解xaml可以直接看下官方文档:
Xamarin.Forms XAML 基础知识 - Xamarin | Microsoft Docs

把XAML1-5章过一遍,基本也就能理解这个结构怎么用了。

至此,第一节讲了安装和环境,
第二节讲了如何查找和编写具体示例,
第三节讲了结构和文件之间关系。

有c#基础的大概能自行尝试做一些事了,控件太多,讲是不可能讲完的,等到需要用到什么功能的时候再去学某个控件就足够了。

但是有个问题,我都不知道控件有什么,我怎么知道我要学哪个呢?
所以开始按功能梳理控件,下一节整理 布局相关控件。

Xamarin 跨平台应用开发(3)——数据与项目结构相关推荐

  1. Xamarin 跨平台应用开发(1)——环境配置

    1.什么是Xamarin ?         Xamarin是一个用C#语言开发跨平台应用的集成开发环境,已经被微软收购,免费开放使用,还整合进了VisualStudio. Xamarin简单理解就是 ...

  2. Xamarin 跨平台应用开发(5)——本地存储

    本节顺序与内容参考了,张引的<Xamarin全栈开发技术与实践>第六章内容. 本节讲两种本地存储方法,偏好存储(少量,临时)与本地数据库. 首先上代码 mainPage.xamlde: & ...

  3. .NET Core实战项目之CMS 第十三章 开发篇-在MVC项目结构介绍及应用第三方UI

    作为后端开发的我来说,前端表示真心玩不转,你如果让我微调一个位置的样式的话还行,但是让我写一个很漂亮的后台的话,真心做不到,所以我一般会选择套用一些开源UI模板来进行系统UI的设计.那如何套用呢?今天 ...

  4. Xamarin跨平台移动开发解决方案

    Xamarin始创于2011年,旨在使移动开发变得难以置信地迅捷和简单.Xamarin的产品简化了针对多种平台的应用开发,包括iOS.Android.Windows Phone和Mac App.Xam ...

  5. 微信小程序开发尚学堂 介绍 项目结构 组件 喧嚷 事件 模板

    一.微信小程序介绍 1. 微信小程序介绍 微信小程序,简称小程序,是一种不需要下载安装即可使用的应用,它实现了应用"触手可及"的梦想,用户扫一扫或搜一下即可打开应用. 说明: 小程 ...

  6. 白鹭引擎开发H5游戏(项目结构)

    孙广东   2016.12.8 http://blog.csdn.net/u010019717 主要使用 EgretWing  (是白鹭扩展的 VisualStudio Code) 新建 项目中  选 ...

  7. 独家 | 手把手教你组织数据科学项目!(附代码)

    作者:kdnuggets 翻译:和中华 校对:丁楠雅 本文约4200字,建议阅读10分钟. 本文介绍了一个工具可以帮助迅速构建一个标准但灵活的数据科学项目结构,便于实施和分享数据科学工作. 由Driv ...

  8. 第 1-4 课:Flutter 项目结构及配置文件详解

    对于一门新语言或新技术的学习来说,在新建了项目之后,了解其项目结构及含义.配置文件的编写,这些对后续的开发和深入学习起到很重要的作用.俗话说磨刀不误砍柴工,Flutter 的学习也同理,我们在新建了 ...

  9. springboot项目结构_从零搭建Spring Boot脚手架(1):开篇以及技术选型

    1. 前言 目前Spring Boot已经成为主流的Java Web开发框架,熟练掌握Spring Boot并能够根据业务来定制Spring Boot成为一个Java开发者的必备技巧,但是总是零零碎碎 ...

最新文章

  1. 软考程序员Java答题速成_软考程序员考试试题解答方法与技巧
  2. 的电路接法_放大电路的三种基本接法分享
  3. python链表中删除一个节点数据_python实现单链表中删除倒数第K个节点的方法
  4. 一个栈桢对应着一个方法
  5. 亚马逊标题自动抓取_如何为您的家人提供自动Amazon礼品卡津贴
  6. 微服务集成——《微服务设计》读书笔记
  7. (96)分频器设计(任意分频器)
  8. 洛谷 绕钉子的长绳子
  9. Atitit opencv 模板匹配
  10. win下文件共享多种方式
  11. 机房重构-panel控件
  12. ubuntu串口助手推荐——comtool
  13. Jeff Dean三执笔:一文看尽2020年谷歌AI重大突破
  14. 苹果审核技术支持URL导致的被拒解决方式
  15. html背景音乐自动播放embed,HTML中添加音乐video embed audio
  16. ELEMENTARY: Is Even
  17. 帝国cms发布文章对哪些数据表做了操作
  18. phxqueue java_微信开源PhxQueue:高可用、高可靠、高性能的分布式队列的几个问题...
  19. vue+Element表单验证+数字英文密码和手机号验证(详细)
  20. 参加IBM素质拓展活动

热门文章

  1. 从元宵节煮汤圆看架构的识别与设计
  2. Linux防火墙配置命令
  3. 达内CGB2110第二次java月考答案与解释
  4. 誓约-java基本数据类型
  5. python func函数用法_python之函数
  6. 飞猪“新旅行联盟”成员大集结,双11全球旅行好货预售开始
  7. MYSQL统计函数基础
  8. 重大基础研究项目组织管理体系创建与实践︱项目管理体系
  9. 外汇海龟交易法则是什么
  10. Ubuntu下架设FTP服务器