Hello, 各位 iT邦帮忙 的粉丝们大家好~~~
本篇是 Re: 从零开始用 Xamarin 技术来复刻过去开发的一个 App: TopStore 系列文的 EP24。
上一篇 EP23 当中已经确认到双平台 (iOS、Android) 都有根据 EP22 中所撰写的程序,正确的建立了想要的 SQLite DB 档案在 App 的专属资料夹当中。
接着本篇 EP24 就来撰写有关对於 SQLite DB 处理 "写、读、改、删 与 搜寻" 等操作,以便操作 App 的使用者能正确的将 "联络人" 给建立起来。
那就开始罗~~~
打开 DBService 的类别设计,在命名空间引用上加入 using System.Linq,因为接下来要操作的是 ORM 设计的 SQLite.NET。
DbService 中对於 Person 资料的 "读、搜寻"。
设计 GetPeople 与 GetPerson 的两个方法,两个方法都有设定需传递的引数,比较特殊的是 GetPeople 的引数有设计预设值。
DbService 中对於 Person 资料的 "写、改"、"删"。
设计 SavePerson 与 DeletePerson 的两个方法,两个方法都有设定需传递的引数。
接下来打开 PersonPageViewModel 当中找到 DeleteCommand,替换掉原本呼叫 MockData 的 DeletePerson 方法。
透过 DbService 的 Instance 来呼叫设计在 DbService 中的 DeletePerson 方法。
继续在 PeoplePageViewModel 并找到当初设计的 SearchCommand 的方法,把其中利用 MockData 搜寻 People 资料的部份给替换掉。
透过 DbService 的 Instance 来呼叫设计在 DbService 中的 GetPeople 方法。
接下来打开 PersonDetailPageViewModel 并找到当初设计的 PersonId 的属性(先前设计用来接收传递资料的属性),把其中利用 MockData 的 GetPerson 方法给替换掉。
透过 DbService 的 Instance 来呼叫设计在 DbService 中的 GetPerson 方法。
找到 PersonDetailPageViewModel 的建构式,替换掉当初利用 MockData 设计的 NewPerson。
直接 new 一个 Person 的物件赋予的 EditPerson 属性(有可能团队的设计规范上会禁止撰写直接 new 物件的程序,请根据设计斟酌考量)。
继续在 PersonDetailPageViewModel 当中找到 SaveCommand,替换掉原本呼叫 MockData 的 EditPerson 方法。
透过 DbService 的 Instance 来呼叫设计在 DbService 中的 SavePerson 方法。
最後再打开 PeoplePage 并设计 override(覆写) 其 Page 的 OnAppearing 生命周期方法。
在 OnAppearing 方法当中撰写透过 DbService 设计的 GetPeople 方法,赋予其 PeoplePageViewModel 中的 People 属性资料。
再一次回到 PeoplePageViewModel 中并找到其建构式,将上一篇 EP23 原本改写的 People 资料的程序给注解。
由於在 PepolePage 的 OnAppearing 方法中已经有设计 People 的资料取得,所以在 ViewModel 建构式先设定一次 People 的资料就显得较无意义。
接下来就在双平台(iOS、Android) 来执行看看吧!
"新增" 联络人。
"编辑" 联络人。
"搜寻" 联络人。
"删除" 联络人。
以上 Person 资料的 "写、读、改、删 与 搜寻" 都能在 SQLite DB 处理完成!
若有兴趣可以按照上一回 EP23 的做法,在做每一个操作的时候都把 SQLite DB 档案从模拟器拉出来看看喔~~~
下一篇 EP25 见唷!
撒啦嘎唷~~~
<<: ASP.NET MVC 从入门到放弃(Day27)-IIS 发布介绍
订阅patreon即可看到更多文章 https://www.patreon.com/wade3c ...
今天写一些浏览器跟 DOM 的东西。 DOM 全名是 Document Object Model,是...
今天就我自己的经验跟大家分享一下, 培养切版技能的方向~ 第一阶段:练习什麽静态版面都要可以切出来 ...
今天来介绍v-model&data跟v-for的用法 data→用来储存里面的资料,当dat...
Git 是开发者们最常接触到的工具之一,大部分的专案都使用它作为版本控制的工具。使用者可以直接用 g...