(04).NET MAUI實戰 MVVM

1.概要

本章將講解如何在MAUI中使用簡單的MVVM模式開發“ListView”內容的增刪功能,MVVM在MAUI中也同樣適用。

3739b85e6ccb43c87052df0611daace3.png

Microsoft.Toolkit.Mvvm

在學習之前我們先了解一個nuget包,它可以幫助我們省去一些代碼的開發時間。包Microsoft.Toolkit.Mvvm (aka MVVM Toolkit) 是一個現代、快速、模塊化的 MVVM 庫。此包面向 .NET Standard,以便在任何應用平臺上使用它:UWP、WinForms、WPF、Xamarin、Uno 等;在任何運行時:.NET Native、.NET Core、.NET Framework或 Mono。它在所有上運行。在所有情況下,API 圖面都是相同的,因此非常適合生成共享庫。在解決方案資源管理器中,右鍵單擊項目,然后選擇“管理NuGet包”。搜索 Microsoft.Toolkit。Mvvm 并安裝它。

c32a59da095c4814102f7aed626a025f.png

2.詳細內容

Project

f09d1d2e5776523430308b9ad041b336.png

View

<Grid RowDefinitions="500,50"><ListView ItemsSource="{Binding Temps}"/><StackLayout Grid.Row="1"><Button WidthRequest="100" HeightRequest="25" Text="add" Command="{Binding AddCommand}"/><Button WidthRequest="100" HeightRequest="25" Text="add" Command="{Binding DeleteCommand}"/></StackLayout>
</Grid>

ViewModel

//ViewModel需繼承public class MainViewModel : ObservableObject{private string _test;private ObservableCollection<MainModel> _temps;private ICommand addCommand;private ICommand deleteCommand;//數據通知集合public ObservableCollection<MainModel> Temps { get => _temps; set => _temps = value; }//命令public ICommand AddCommand { get => addCommand ?? (addCommand = new RelayCommand(AddCallback));}public ICommand DeleteCommand { get => deleteCommand ?? (deleteCommand = new RelayCommand(DeleteCallback));  }//數據通知字段public string Test { get => _test; set => SetProperty(ref _test , value); }public MainViewModel() {//初始化Temps = new ObservableCollection<MainModel>();Temps.Add(new MainModel { Name = "zhangsan" });Temps.Add(new MainModel { Name = "zhangsan" });}//命令執行內容private void AddCallback(){Temps.Add(new MainModel { Name = DateTime.Now.ToString() });}private void DeleteCallback(){Temps.RemoveAt(0);}}

Model

public class MainModel
{public string Name { get; set; }public override string ToString(){return Name;}
}

Run

8e0add20b2f86a087b2a2763ef6c59bd.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/285469.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/285469.shtml
英文地址,請注明出處:http://en.pswp.cn/news/285469.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[轉]淺析Tomcat、JBOSS、WebSphere、WebLogic、Apache

做任何web項目&#xff0c;都離不開服務器&#xff0c;有錢的公司用WebSphere、WebLogic&#xff0c;沒錢公司用nginxtomcat&#xff0c;不要小瞧nginxtomcat麻雀雖小&#xff0c;五臟俱全。 服務器的知識&#xff0c;在筆試、面試中會經常被問到&#xff0c;對于一個合格的程序…

PHP require和include的區別

require一個文件存在錯誤的話&#xff0c;那么程序就會中斷執行了&#xff0c;并顯示致命錯誤 include一個文件存在錯誤的話&#xff0c;那么程序不會中端&#xff0c;而是繼續執行&#xff0c;并顯示一個警告錯誤。 以下為補充&#xff1a;1. include有返回值&#xff0c;而r…

C語言試題116之打印出如下圖案(菱形)

??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款模擬面試、刷題神器?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 題目:打印出如下圖案(菱形) * …

【數據庫原理及應用】經典題庫附答案(14章全)——第四章:關系系統及其優化

【數據庫原理及應用】經典題庫附答案(14章全)——第一章:數據庫基礎知識 【數據庫原理及應用】經典題庫附答案(14章全)——第二章:關系數據庫知識 【數據庫原理及應用】經典題庫附答案(14章全)——第三章:結構化查詢語言SQL 【數據庫原理及應用】經典題庫附答案(14章…

WTM重大更新,多租戶和單點登錄

WTM重大更新多租戶單點登錄隨著WTM被越來越多地應用于企業&#xff0c;用戶對于多租戶和單點登錄的需求越來越強烈。經過了幾個月的努力&#xff0c;我們把WTM底層代碼又進行了一次優化和重構&#xff0c;加入了多租戶和單點登錄的功能。VUE&#xff0c;Blazor&#xff0c;LayU…

struts2注解

2019獨角獸企業重金招聘Python工程師標準>>> 以下均為本人工作中的筆記內容&#xff0c;不夠全面具體。碰到什么我就記錄什么&#xff0c;只是作為筆記使用&#xff0c;希望大家多提寶貴意見&#xff0c;共同進步。Action("login"):定義action //或者寫…

[轉]H5直播之從推流服務搭建到視頻直播

轉自http://www.php.cn/html5-tutorial-403035.html 最近視頻直播比較火&#xff0c;發現目前 WEB 上主流的視頻直播方案有 HLS 和 RTMP&#xff0c;移動 WEB 端目前以 HLS 為主&#xff0c;PC端則以 RTMP 為主實時性較好&#xff0c;接下來將圍繞這兩種視頻流協議來展開H5直播…

【數據庫原理及應用】經典題庫附答案(14章全)——第五章:關系數據理論

【數據庫原理及應用】經典題庫附答案(14章全)——第一章:數據庫基礎知識 【數據庫原理及應用】經典題庫附答案(14章全)——第二章:關系數據庫知識 【數據庫原理及應用】經典題庫附答案(14章全)——第三章:結構化查詢語言SQL 【數據庫原理及應用】經典題庫附答案(14章…

webform數據導出

把數據放到一個泛型集合里&#xff0c;再把泛型集合里面的數據放到一個table中&#xff0c;設置好文件路徑&#xff0c;然后進行文件讀取&#xff0c;最后供用戶下載。 數據導出放在一個按鈕中就可以了 using System; using System.Collections.Generic; using System.Linq; us…

C語言試題117之有一分數序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個數列的前 20 項之和

?作者簡介:大家好我是碼莎拉蒂,CSDN博客專家?????? ??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款模擬面試、刷題神器?? 點擊跳轉進入網站 1、題目 題目:有一分數序列:2/1,3/2,5/3,8/5,13/8,21/13…求出這個數列的前 20 項之和。 分析…

Ionic Mac 環境配置

2019獨角獸企業重金招聘Python工程師標準>>> Ionic Mac 環境配置 安裝cordova之前要安裝nodejs 會包含npm安裝&#xff08;npm是個包管理器&#xff09;&#xff0c;到官網下載https://nodejs.org/en/download/ 是個pkg包下載之后雙擊下載包運行然后 step …

【數據庫原理及應用】經典題庫附答案(14章全)——第六章:關系數據庫設計過程

【數據庫原理及應用】經典題庫附答案(14章全)——第一章:數據庫基礎知識 【數據庫原理及應用】經典題庫附答案(14章全)——第二章:關系數據庫知識 【數據庫原理及應用】經典題庫附答案(14章全)——第三章:結構化查詢語言SQL 【數據庫原理及應用】經典題庫附答案(14章…

(03).NET MAUI實戰 基礎控件

1.概要本章將繼續介紹.NET MAUI中的常用基礎控件&#xff0c;讓剛剛接觸MAUI的小伙伴有寫基礎的認識&#xff0c;心里有底開發起來將得心應手。下面將列出一些常用的基礎控件&#xff1a;控件名中文名稱說明Button按鈕與WPF中的基礎用法無太大變化CheckBox單選框與WPF中的基礎用…

ffmpeg源碼分析及mp4文件解析

一.mp4文件的組織 1. mp4文件的box(ffmpeg中叫atom) mp4是由一系列的box組成的&#xff0c;每個box的header是8個字節(4字節的長度,4字節的type) 第一個box比較特殊&#xff0c;其type類型為ftyp,還包含一個sub-type 0000000: 0000 0020 6674 7970 6973 6f6d 0000 0200 ... f…

【數據庫原理及應用】經典題庫附答案(14章全)——第七章:數據庫恢復技術

【數據庫原理及應用】經典題庫附答案(14章全)——第一章:數據庫基礎知識 【數據庫原理及應用】經典題庫附答案(14章全)——第二章:關系數據庫知識 【數據庫原理及應用】經典題庫附答案(14章全)——第三章:結構化查詢語言SQL 【數據庫原理及應用】經典題庫附答案(14章…

C++庫(Google Breakpad)

Google Breakpad是什么&#xff1f; 一個開源的多平臺崩潰報告系統。 Google breakpad是一個非常實用的跨平臺的崩潰轉儲和分析模塊&#xff0c;它支持Windows&#xff0c;Linux和Mac和Solaris。由于他本身跨平臺&#xff0c;所以很大程度上減少了我們在平臺移植時的工作&#…

java eleven進度條

2019獨角獸企業重金招聘Python工程師標準>>> 一個矩形組件 MethodDescribleJProgrssBar()不帶進度字符&#xff0c;最小值0最大值100的水平進度條JProgressBar(int orient)VERTICAL/HORIZONTALJProgressBar(int in,int max)指定最大最小的水平進度條JProgressBar(in…

Docker:多階段構建 ASP.NET Core 應用鏡像

本文選自『.NET大牛之路』知識星球&#xff0c;發布于2022年05月25日。今天我們一起來寫 Dockerfile 構建一個 ASP.NET Core 應用鏡像&#xff0c;同時還會將鏡像發布到 Docker Hub 倉庫。1創建示例 Web 應用程序為了演示&#xff0c;我們先創建一個 ASP.NET Core 應用程序&…

[轉]【JAVA各版本特性】JAVA 1.0

閑來想了解下各版本之間的特性&#xff0c;搜索沒有最新的特性說明&#xff0c;故想寫一份。廢話不多說。 JDK Version 1.0 1996-01-23 Oak(橡樹) 初代版本&#xff0c;偉大的一個里程碑&#xff0c;但是是純解釋運行&#xff0c;使用外掛JIT&#xff0c;性能比較差&#xff0…

【數據庫原理及應用】經典題庫附答案(14章全)——第八章:數據庫并發控制

【數據庫原理及應用】經典題庫附答案(14章全)——第一章:數據庫基礎知識 【數據庫原理及應用】經典題庫附答案(14章全)——第二章:關系數據庫知識 【數據庫原理及應用】經典題庫附答案(14章全)——第三章:結構化查詢語言SQL 【數據庫原理及應用】經典題庫附答案(14章…