当前位置: 首页 > news >正文

好看的ui界面郑州互联网seo使用教程

好看的ui界面,郑州互联网seo使用教程,网站文件夹结构,邯郸房产信息网恋家网我们在开发中, 经常会有这样的需求: 点击按钮后, 进行一些耗时的工作工作进行时, 按钮不可再次被点击工作进行时, 会显示进度条, 或者 “加载中” 的动画 RelayCommand CommunityToolkit.Mvvm 中的 RelayCommand 除了支持最简单的同步方法, 还支持以 Task 作为返回值的异步方…

我们在开发中, 经常会有这样的需求:

  1. 点击按钮后, 进行一些耗时的工作
  2. 工作进行时, 按钮不可再次被点击
  3. 工作进行时, 会显示进度条, 或者 “加载中” 的动画

RelayCommand

CommunityToolkit.Mvvm 中的 RelayCommand 除了支持最简单的同步方法, 还支持以 Task 作为返回值的异步方法, 当我们为这样的异步方法标记上 RelayCommand 特性时, 它会生成一个对应的异步指令.

  1. 指令在执行时, 主要逻辑会在后台, 而不是运行在 UI 线程中. 具体可以参考 “异步和异步的线程切换”
  2. 指令在执行时, CanExecute 会变为 false, 此时使用该 Command 的 Button 或者其他控件, 也会变成 ‘被禁用’ 的状态.
  3. 如果方法参数中包含一个 CancellationToken, 那么这个任务同样可以被取消. 只需要你方法内部有正确实现 “取消执行” 的逻辑就没问题.

下面是一个例子.

主窗体代码:

<Window x:Class="LearnMvvm.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:LearnMvvm"xmlns:vm="clr-namespace:LearnMvvm.ViewModels"mc:Ignorable="d"Title="MainWindow" Height="450" Width="7![请添加图片描述](https://img-blog.csdnimg.cn/65ddbab8f917458bbfd40ebdb6bb6d16.gif)
00"><Window.DataContext><vm:MainViewModel/></Window.DataContext><Grid><StackPanel Margin="50"><Button Command="{Binding DoSomethingCommand}">Do something</Button><Button Command="{Binding CancelDoSomethingCommand}" Margin="0 5 0 0">Cancel</Button><ProgressBar Margin="0 10 0 0" Height="15" Value="{Binding Progress}"/></StackPanel></Grid>
</Window>

后台 ViewModel

public partial class MainViewModel : ObservableObject
{[ObservableProperty]private int progress;[RelayCommand]public async Task DoSomething(CancellationToken token){for (int i = 0; i <= 100; i++){if (token.IsCancellationRequested)return;await Task.Delay(100);Progress = i;}}[RelayCommand]public void CancelDoSomething(){DoSomethingCommand.Cancel();}
}

效果:
演示
取消执行

在 CommunityToolkit.Mvvm 中, 支持以下样式的 RelayCommand 签名:

  • void 方法名() 无参同步指令
  • void 方法名(类型 参数名) 有参同步指令
  • Task 方法名(), 无参, 不支持取消的异步指令
  • Task 方法名(类型 参数名) 有参, 不支持取消的异步指令
  • Task 方法名(CancellationToken token) 无参, 支持取消的异步指令
  • Task 方法名(类型 参数名, CancellationToken token) 有参, 支持取消的异步指令
http://www.yayakq.cn/news/94749/

相关文章:

  • 西安网站开发建设wordpress腾讯地图插件
  • 营销型网站郭老师案例分享宁波网站建设企业网站制作
  • 网站建设案例单招网消防维保公司宣传册设计样本
  • 宁波市省网站建设自设计网站
  • 常州网站建设常州免费网站注册免费网站申请
  • 家居饰品网站建设论文wordpress模版 使用教程
  • 装修公司合作平台的网站php体育网站模板
  • 本地网站怎么做成都网站建设推来客
  • 响水建设局网站wordpress网店
  • 建设旅游网站系统怎么把html文件生成网址
  • 南阳哪里做网站比较好可信网站认证 技术支持单位
  • 企业网站建设综合实训心得体会一千字建设我们的网站教案
  • 网站建设 今晟网络域名解析管理网站
  • 网站定制开发四大基本原则在手机上怎么做app软件
  • 湖南网站开发 d岚鸿铁岭网站开发
  • 国外网页设计分享网站网站个性化制作
  • 学做网站的视频教学建站网站多少钱
  • 安卓网站开发视频织梦文章title怎么显示网站title
  • 怎么利用网站做产品推广分销系统开发公司
  • 西宁市企业建站专业公司网站建设哪个好
  • 怎么在网站后台加框框网站版心怎么做
  • 网站公司必须帮备案织梦模板下载
  • 基于百度地图的网站开发wordpress推荐编辑器
  • 做外贸网站用什么软件翻强的有哪些专做自然风景图片的网站
  • 昆明网站开发培训网站推广的方法和技巧
  • 做免费网站教程国vs网站建设安全
  • 小程序服务器可以做网站吗汉中seo培训
  • 正确的网线的顺序图seo高效优化
  • 微模板如何建微网站宁波企业制作网站
  • 面包店网站建设论文网站登录窗口怎么做