C#学习(九)- WP8.1开发的一些收获

本篇属于总结性记录,知识点会相对凌乱。

1. 关于SQLlite数据库的应用

  关于如何设置Visual Studio 2013使SQLlite数据库可用,参见http://www.cnblogs.com/tiny-home/p/4474861.html,在此不再赘述。主要分享我使用SQLlite过程中遇到的问题和收获。

  首先要建一个类,用以表示在SQLlite数据库中表示的记录,相当于普通数据库中的create语句,用来定义表中每条记录有多少列,每列是什么类型的量,每条记录就是一个对象。比如:

using SQLite;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Note.Model
{
    public class Notes:ModelBase
    {
     private int id;
        [AutoIncrement, PrimaryKey] //主键并且自增
        public int ID
        {
            get;
            set;
        }

        private string name;
        [MaxLength(1000)]
        public string Name
        {
            get { return name; }
            set
            { this.SetProperty(ref this.name, value); }
        }

        private string content;// = DateTime.Now.ToString();
        [MaxLength(3000)]
        public string Content

        {
            get { return content; }
            set
            { this.SetProperty(ref this.content, value); }
        }

        private bool isImportant;
        public bool IsImportant
        {
            get { return isImportant; }
            set
            { this.SetProperty(ref this.isImportant, value); }
        }
    }
}

这个和普通的类声明很像,中括号中是对各属性(各列)加的限制。有一个细节可能需要注意,在你使用Visual Studio 2013开发WP8.1,当你更改了数据表的定义(也就是改了这个类),你需要重启虚拟机,否则会出现错误。

增加记录:

public async void Add(Notes note)//增加记事
{
      SQLiteAsyncConnection conn = GetConn();
      await conn.InsertAsync(note);
}

查找记录:

SQLiteAsyncConnection conn = GetConn();var query = from note in conn.Table<Notes>()
                               where note.ID == id
                               select note;

删除记录:

public async void Delete(int id)//删除记事
 {
    SQLiteAsyncConnection conn = GetConn();
    var query = from note in conn.Table<Notes>()
                     where note.ID == id
                     select note;
    Notes notes = await query.FirstOrDefaultAsync();
    await conn.DeleteAsync(notes);
 }        

2. 关于数据的Binding

{Binding}  表示与上一层所绑定的数据绑定

{Binding MyProperty}  表示与上一层所绑定的对象的特定属性绑定

{Binding Object.MyProperty}  表示与特定对象的特定属性绑定,与上一级所绑定的内容不再有关系

另外{Binding **** }有一个属性“Mode”,比如可以这么写:Text="{Binding NoteDemo.Content, Mode=TwoWay}"

表示Text与NoteDemo.Content绑定,并且是双向的,就是说当后台的NoteDemo.Conten发生变化,在Text的值会跟着变。而当你修改Text的值时,后台的NoteDemo.Conten也会跟着变。这种属性在两个量绑定时将会有一点十分方便,你不用再想还要去保存一个暂时量,双向绑定后相当于会自动保存。

3. RadioButton的使用

  RadioButton就是选择框控件,用来确定某项是否被选择。如:

<RadioButton Content="重要"

         IsChecked="{Binding NoteDemo.IsImportant,Mode=TwoWay}"

        Height="69"

        Width="213"

        FontSize="24"  />

Content:指选择后的提示文字

IsChecked:选择框是否被选中,这里我将它与NoteDemo.IsImportant绑定,这是一个bool型变量

Height、Width:长和宽

FontSize:选择框的大小

时间: 2024-11-13 09:44:46

C#学习(九)- WP8.1开发的一些收获的相关文章

九、Android学习笔记_ Android开发中使用软引用和弱引用防止内存溢出

在<Effective Java 2nd Edition>中,第6条"消除过期的对象引用"提到,虽然Java有 垃圾回收机制,但是只要是自己管理的内存,就应该警惕内存泄露的问题,例如的对象池.缓存中的过期对象都有可能引发内存泄露的问题.书中还提到可以用 WeakHashMap来作为缓存的容器可以有效解决这一问题.之前也确实遇到过类似问题,但是没有接触过"弱引用"相关的问题,于是查阅了一些资料. <Java 理论与实践: 用弱引用堵住内存泄漏>

结合基础与实战学习React.js 独立开发新闻头条平台

第1章 课程简介课程导读,介绍了课程的基本结构.课程的特点.最终实战项目演示.前置知识点以及源码打包结构和后期相关学习资料的更新方式. 第2章 React 简介对 React 进行了详细地简介并对课程的前置知识点进行了详细地梳理. 第3章 React 初体验介绍了此课程中使用的 React 版本以及官网学习包 React Starter Pack 的下载与安装,并对 React 的框架运行进行了初体验. 第4章 NodeJS简介与安装对 NodeJS 进行了详细地介绍,并完整演示了 NodeJS

Android学习笔记_78_ Android开发中使用软引用和弱引用防止内存溢出

在<Effective Java 2nd Edition>中,第6条"消除过期的对象引用"提到,虽然Java有 垃圾回收机制,但是只要是自己管理的内存,就应该警惕内存泄露的问题,例如的对象池.缓存中的过期对象都有可能引发内存泄露的问题.书中还提到可以用 WeakHashMap来作为缓存的容器可以有效解决这一问题.之前也确实遇到过类似问题,但是没有接触过"弱引用"相关的问题,于是查阅了一些资料. <Java 理论与实践: 用弱引用堵住内存泄漏>

Hadoop学习笔记(4) ——搭建开发环境及编写Hello World

Hadoop学习笔记(4) ——搭建开发环境及编写Hello World 整个Hadoop是基于Java开发的,所以要开发Hadoop相应的程序就得用JAVA.在linux下开发JAVA还数eclipse方便. 下载 进入官网:http://eclipse.org/downloads/. 找到相应的版本进行下载,我这里用的是eclipse-SDK-3.7.1-linux-gtk版本. 解压 下载下来一般是tar.gz文件,运行: $tar -zxvf eclipse-SDK-3.7.1-linu

javaweb学习总结(六)——Servlet开发(二)

转载:http://www.cnblogs.com/xdp-gacl/p/3763559.html 只为成功找方法,不为失败找借口! javaweb学习总结(六)——Servlet开发(二) 一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数. 例如: 1 <servlet> 2 <servlet-name>ServletC

Oracle学习(九):创建和管理表

1.知识点:可以对照下面的录屏进行阅读 SQL> --创建表 SQL> create table test1 2 (tid number, 3 tname varchar2(20), 4 hidatedate date default sysdate); SQL> --使用as和子查询快速建表 SQL> --创建表:包含员工号 姓名 月薪 年薪 部门名称 SQL> create table empincome 2 as 3 select empno,ename,sal,sal

WP8.1开发:简单的天气预报应用

今天小梦给大家分享一个简单的天气预报应用源码:调用的是百度API.整个应用都没有什么难点.只是一个简单的网络请求和json数据处理.在WP8.1有小娜的情况下,天气预报应用还有意义吗?我认为还是有点意义的,至少数据更详细,而要想要用户喜欢,必须有比小娜更人性化的提醒和精美的UI.UI必须要精美.当然小梦今天分享的UI很简单.大家可以根据自己的想象去处理UI.之所以分享出来,是分享JSON的数据处理.在WP8.1开发XML读取中央气象城市代码文件中,分享了XML文件和JSON数据解析的方法,不过其

快速学习C语言三: 开发环境, VIM配置, TCP基础,Linux开发基础,Socket开发基础

上次学了一些C开发相关的工具,这次再配置一下VIM,让开发过程更爽一些. 另外再学一些linux下网络开发的基础,好多人学C也是为了做网络开发. 开发环境 首先得有个Linux环境,有时候家里机器是Windows,装虚拟机也麻烦,所以还不如30块钱 买个腾讯云,用putty远程练上去写代码呢. 我一直都是putty+VIM在Linux下开发代码,好几年了,只要把putty和VIM配置好,其实 开发效率挺高的. 买好腾讯云后,装个Centos,会分配个外网IP,然后买个域名,在DNSPod解析过去

C#学习与上位机开发之串口通信模块介绍

串口通信模块(SerialPort) (1)模块简介 使用此模块需要首先包含一些文件IO相关文件 using System.IO;using System.IO.Ports; 图标如下图1所示,将其拖拽到面板.会显示在最下方,其参数有如下: BaudRate 波特率 DataBits 数据位 Parity 奇偶校验位 PortName 端口号 StopBits 停止位 ByteToRead 获取输入缓冲区的 IsOpen 获取是否开启串口         以上是我们做串口通信上位机需要用到的(如