【WPF on .NET Core 3.0】 Stylet演示项目 - 简易图书管理系统(1)
.NET Core 3.0已经发布了,除了一大堆令人激动的功能以外,也增加了对WPF的正式支持, 那么WPF在.NET Core 3.0下的开发体验如何呢?
本文利用了Stylet框架开发.NET Core 3.0上的WPF应用程序.关于Stylet框架, 可能大家比较陌生, 它是一个轻量级(但是非常优秀!)的WPF框架, 最近也更新了对.NET Core 3.0的支持, 关于Stylet的介绍可以浏览我之前的一篇博文:
OK. 感觉不错!
增加登录功能
虽然是个演示项目,但是我们还是需要登录界面的:), Stylet中一个界面至少需要两部分: "ViewModel"和"View". 我们来分别实现它们.
ViewModel
在Pages文件夹下创建一个名为LoginViewModel.cs
的类,用来实现登录的界面逻辑.并输入以下代码:
public class LoginViewModel : Screen { /// <summary> /// 用户名 /// </summary> public string UserName { get; set; } /// <summary> /// 密码 /// </summary> public string Password { get; set; } /// <summary> /// 登录 /// </summary> public void Login() { // 在这实现登录逻辑 } /// <summary> /// 登录的防护属性 /// </summary> public bool CanLogin => !string.IsNullOrEmpty(UserName) && !string.IsNullOrEmpty(Password); }
- 该类继承了
Stylet.Screen
, 这是Stylet中一个常用的ViewModel基类. - 定义了两个public属性, 分别代表用户名和密码.
- 定义了一个名为
Login
的方法,用来实现登录的逻辑.我们会在稍后实现它. -
定义了一个名为
CanLogin
的防护属性, 用来检查Login
方法是否可以运行. 只有当用户名和密码都输入时,才允许运行登录方法.防护属性(Guard Properties)是Stylet的一个功能, 是一个返回布尔型的只读属性. 属性名的命名约定为Can + 防护的方法名. 更多信息请浏览Guard Properties.
启用可空引用类型
下面我们试用一下C#8中新增加的特性: 可空引用类型.
使用可空引用类型可在编译时就检查潜在的空引用问题.关于可空引用类型,请参考我之前翻译的一篇文章初试C# 8.0中"可空的引用类型"章节.
右键点击StyletBookStore
工程,选择"Edit Project File":
在打开的StyletBookStore.csproj文件中增加一行配置: