HandyControl控件之 进度条按钮 MVVMlight应用实例

接前文,咱们继续开源WPF控件探索HandyControl,本文主要写给如我这种新人菜鸟、

首先我们新建一个WPF项目,HandyControlEasyDemo

使用Nuget来安装我们需要引用的两个重要工具HandyControl  以及MVVMlight组件(MVVMlight是WPF项目下一个很好用的框架,MVVM相关资料写得非常好的 推荐大家看翁智华的  利刃 MVVMLight 1:MVVMLight介绍以及在项目中的使用 - 翁智华 - 博客园 点此处直达)

 

HandyControl控件之 进度条按钮 MVVMlight应用实例_第1张图片

HandyControl控件之 进度条按钮 MVVMlight应用实例_第2张图片

HandyControl控件之 进度条按钮 MVVMlight应用实例_第3张图片 初步安装好MVVMlight后的解决方案样子

安装后,我们先来配置下MVVMlight ,首先新建两个文件夹 Model  View 以后我们的模型均放置在Model命名空间下,视图均放置在View命名空间下,入下图,三个文件夹中的大写字母依次是MVVM 这难道就是MVVM的由来 哈哈

在Model 文件夹新建TestModel类,类声明如下 public class TestModel: ObservableObject 

将MainViewModel拖放到View文件下
主页面这么写


    
        
            
        
    

using System.Threading;
using GalaSoft.MvvmLight;
using HandyControlEasyDemo.Common;

namespace HandyControlEasyDemo.Model
{
    public class TestModel: ObservableObject
    {
        public BackgroundTaskWork BackTaskWork
        {
            get => _pBackTaskWork;
            set
            {
                _pBackTaskWork = value;
                RaisePropertyChanged(() => BackTaskWork);
            }
        }
        private BackgroundTaskWork _pBackTaskWork = new BackgroundTaskWork();

        internal void StartTask()
        {
            BackTaskWork.DoBackTask(UploadScanData);
        }

        private bool UploadScanData()
        {
            bool result = true;

            // 2.初始化数据、进度条及相关功能
            BackTaskWork.UpdateProcess(this, 100, 1, "提交扫码数据");
            for (int x = 0; x < 100; x++)
            {
                // 模拟任务处理
                Thread.Sleep(20);
                BackTaskWork.UpdateProcess(this, 100, x, x + "/" + 100);
            }

            return result;
        }

    }
}

上面代码中用到的异步线程处理类我放在项目中了,感兴趣的亲们可以直接下载项目实际看下,这个简单的DEMO亮点在进度条按钮的属性处理,相关代码取自HandyControl的DEMO,加上了一些自己的辅助类,感兴趣的亲可以参考下

DEMO下载链接 https://download.csdn.net/download/qqwe13/11003244

你可能感兴趣的:(WPF,HandyControl,C#)