https://www.cnblogs.com/waku/p/6879809.html
Stylet
作为框架
有因为约定conventions,可以自动生成的,比如view和 ViewModel,void Sayhell() 和 void CanSayHello()
有自动背后,帮你搞定了的,比如 PropertyChanged 通知
有。。。
/==============================================/
0.安装
Install-Package Stylet.Start
1. 引入commond s:action, 直接执行方法
ViewModel中
public void SayHello() => Name = "Hello " + Name; // C#6的语法, 表达式方法
View中
<Button Content="Say hellow" Command="{s:Action SayHello}"/>
2. 前端xaml,可以直接和 viewModel中的数据绑定,不用通过 DataContext.
d:DataContext="{d:DesignInstance local:ShellViewModel}">
3. 数据绑定后,PropertyChanged通知,数据响应机制,可以用框架Fody
Install-Package PropertyChanged.Fody
4. 预防性Guard Properties,输入检查, SayHello 和CanSayhellp.
public void SayHello() => Name = "Hello " + Name; // C#6的语法, 表达式方法
public bool CanSayHello => !string.IsNullOrEmpty(Name); // 同上
//=========================================//
namespace _02_WPF_NetFramework_旧版.Pages
{
public class ShellViewModel :Screen, INotifyPropertyChanged
{
public string Name { get; set; } = "waku"; // C#6的语法, 声明自动属性并赋值
public string Name2 { get; set; }
//Name3是传统绑定方式
private string name3;
public String Name3
{
set
{
name3 = value;OnPropertyChanged("Name");
}
get
{
return name3;
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
if (this.PropertyChanged != null)
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
public void SayHello() => Name=Name + " >>> use methods actin!";
public bool CanSayHello => !string.IsNullOrEmpty(Name); // 同上
}
}