
模式和XAML应用程序
MVVM,C#
singhwong
C#,UWP,.Net
展开
-
6. 服务
要从存储库中获取图书,需要使用一个服务,并且可以在访问相同数据的多个ViewModel中使用它。因此,服务是在ViewModel之间共享数据的好地方。图书的示例服务实现了泛型接口。这个接口定义了类型ObservableCollection的Items属性。当集合发生变化时,ObservableCollection实现了用于通知的INotifyCollectionChanged接口。接口IItemsService也定义了SelectedItem属性,并使用事件SelectedItemChanged更改通知原创 2020-08-23 14:03:59 · 117 阅读 · 0 评论 -
5. 模型(Model)
下面先定义模型,尤其是Book类型。这个类型在UI中显示和编辑。为了支持数据绑定,在用户界面中更新的属性值需要实现变更通知。BookId属性只是显示,而不改变,所以变更通知不需要使用这个属性。SetProperty方法由基类BindableBase定义: public class Book:BindableBase { public int BookId { get; set; } private string _title; public原创 2020-08-23 12:25:54 · 517 阅读 · 0 评论 -
4. 示例解决方案
示例解决方案包括一个Universal Windows Platform应用程序,用于显示和编辑一个图书列表。在第37章中,这款应用将扩展到iPhone和Android上。为此,解决方案使用如下项目:BooksApp——UWP应用程序项目,是现代应用程序的UI,此应用程序包含带有XAML代码的应用程序视图,以及服务特定于平台的实现。 BooksLib——一个.NET标准库2.0,提供模型、视图模型和服务来创建、读取和更新图书;所有平台都支持.NET标准2.0。 Framework——一个.NET标准原创 2020-08-23 11:41:42 · 136 阅读 · 0 评论 -
3. 共享代码
在创建这个示例解决方案,开始创建模型之前,需要回过头来看看不同的选项如何在不同的平台之间共享代码。本节讨论不同的选项,考虑需要支持的不同平台和所需要的API。1.使用 API 协定和通用 Windows 平台通用Windows平台定义了一个可用于所有Windows 10设备的API。然而,这个API在新版本中会改变。使用Project Properties中的Application设置(参见下图),可以定义应用程序的目标版本(这是要构建的版本)和系统所需的最低版本。所选Software Devel.原创 2020-08-23 06:24:40 · 879 阅读 · 0 评论 -
2. 定义MVVM模式
首先看看MVVM模式的起源之一:MVC设计模式。Model-View-Controller(MVC)模式分离了模型、视图和控制器(见下图)。模型定义视图中显示的数据,以及改变和操纵数据的业务规则。控制器是模型和视图之间的管理器,它会更新模型,给视图发送要显示的数据。当用户请求传入时,控制器就采取行动,使用模型,更新视图。注意:MVC模式大量用于ASP.NET MVC。通过Model-View-Presenter(MVP)模式(见下图),用户与视图交互操作。Persenter包含视图的所有业务逻辑原创 2020-08-22 15:22:35 · 161 阅读 · 0 评论 -
1. 使用MVVM的原因
对于Windows应用程序,技术也变得很快。多年来,Windows Forms技术包装了本地Windows控件,来创建桌面应用程序。之后出现了Windows Presentation Foundation(WPF),在其中用户界面使用Extensible Application Markup Language(XAML)定义。Silverlight为在浏览器中运行的,基于XAML的应用程序提供了一个轻量级 的框架。Windows Store应用程序随着Windows 8而出现,在Windows 8.1中改为原创 2020-08-22 15:09:16 · 366 阅读 · 0 评论