zoukankan      html  css  js  c++  java
  • 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:选择框的大小

        

  • 相关阅读:
    独一份秘籍 | 开发数字孪生3D可视化炫酷场景?还有MAC电脑大奖可拿!
    数字孪生城市,如何破旧立新?ThingJS
    官方示例(十六):3D场景中BIM剖切面参数化开发ThingJS
    官方案例(十五):3D开发构造器参数测量多边形面积 ThingJS
    如何在Spring Boot 中使用 HandlerMethodArgumentResolver
    python的基本数据类型
    canvas 隐藏 踩坑
    小程序canvas 圆角框带填充颜色
    小程序 canvas 文字加粗
    flex布局 一行4个元素 后面不够4个元素对齐
  • 原文地址:https://www.cnblogs.com/yongheng20/p/4510100.html
Copyright © 2011-2022 走看看