WPF ToolkitMVVM RelayCommand

ObservableProperty 特性

字段是一般小写

csharp 复制代码
[ObservableProperty]
private string?userName;

//View  中  绑定  是  大写  UserName

RelayCommand 特性

要大写

csharp 复制代码
 [RelayCommand]
 private void GetName()
 {

 }
//View  中绑定  GetNameCommand         方法+Command

》》》CanExecute

csharp 复制代码
//  会首先执行 GetMethod方法,
//  若返回 False,则View绑定的GetName的控件{如按钮  会 禁止使用}
//  若返回True,则View绑定的GetName的控件  可用。  
// 触发这个控件,会再次执行 GetMethod方法,若返回False,则不执行,反之继续执行对应的GetName  方法体
// IRelayCommand.NotifyCanExecuteChanged 调用命令时再次调用该按钮。

 [RelayCommand(CanExecute =nameof(GetMethod))]
 private void GetName()
 {

 }
 private bool GetMethod()
 {
     //return user is not null;
     return false;
 }

异步命令

方法需要 async Task 修饰

csharp 复制代码
[RelayCommand]
private async Task GreetUserAsync()
{
    。。。。
    await 。。。。
    。。。。。
}
csharp 复制代码
[RelayCommand]
private async Task GreetUserAsync(CancellationToken token)
{
    带取消命令
}
相关推荐
Gabriel_wei4 分钟前
腾讯云Ubuntu系统安装宝塔,配置Java环境,运行spring boot项目
java·spring boot·ubuntu·腾讯云·宝塔
积跬步DEV13 分钟前
Claude Prompt 汉语新解
开发语言·前端·javascript
虚无火星车24 分钟前
说说停止线程池的执行流程?
java·开发语言
乔以亦26 分钟前
python 装饰器
linux·开发语言·python
新手小袁_J26 分钟前
SpringBoot整合JDBCTemplate(day34)
java·spring boot·后端·spring·spring cloud·maven
计算机学姐31 分钟前
基于python+django+vue的社区爱心养老管理系统
开发语言·vue.js·后端·python·mysql·django·web3.py
V_fanglue370532 分钟前
qmt量化交易策略小白学习笔记第60期【qmt编程之期权数据--基于BS模型计算欧式期权隐含波动率--内置Python】
开发语言·windows·笔记·python·学习·区块链
Flying_Fish_roe35 分钟前
Reactive 编程-Loom 项目(虚拟线程)
java
汽车电子助手1 小时前
如何制作Vector Vflash中加载的DLL文件--自动解锁刷写过程中27服务
开发语言·单片机·嵌入式硬件
码农不惑1 小时前
如何在C++中使用mupdf操作pdf文件(一)
开发语言·c++·pdf