美文网首页
基于Caliburn.Micro和Telerik的WPF简易订单

基于Caliburn.Micro和Telerik的WPF简易订单

作者: 百里有声 | 来源:发表于2019-12-19 12:57 被阅读0次

       前段时间整理了一个简易的订单系统,主要是想熟悉一下Caliburn.Micro的开发流程。

使用后觉得这是一个非常适合桌面应用系统的开发框架,功能强大,且能保持干净的代码结构。

开发中结合Telerik的特点做了一些调整,但基本上还是MVVM的开发思想。

开发环境:VS2015,NetFramework4.5.2,Sqlite

相关的库:Caliburn.Micro,Telerik UI For WPF 2015Q1,Dapper

结构

代码结构:

业务结构:

Main------->List------->Form

首页上做业务模块的切换,子模块基本上都是列表和表单的形式。

说明

DictionarysService 里把常见的字典做了缓存,现代机器的内容足够可以放心的用缓存了^_^

GoodsService 里 类似如下的代码还可以在封装一下。个人觉得这样的形式能减少出错几率。

string fields = string.Join(",", oMaps.Keys);

string valueDefineds = string.Join(",", oMaps.Keys.Select(key => string.Format("@{0}", key)));

string strSql = string.Format("INSERT INTO T_Goods({0}) VALUES({1})", fields, valueDefineds);

var dynamicParams = new DynamicParameters();

oMaps.Apply(param => dynamicParams.Add(param.Key, param.Value));

using (IDbConnection cnn = DbHelper.GetConnection()){

    cnn.Execute(strSql, dynamicParams);

}

OrderFormViewModel 

类似的FormView都是用的 Caliburn.Micro.Screen基类,

可以关注一下和PropertyChangedBase的区别,

主要是为重载 OnViewLoaded(object view) 以及使用 this.TryClose。

比如如下的操作,最好调用一下 this.TryClose,否则某些Handle 可能会执行两次。

private void MyRadDataForm_EditEnded(object sender, Telerik.Windows.Controls.Data.DataForm.EditEndedEventArgs e){

            ......

            eventAggregator.PublishOnUIThread(new OrderAddedEventArgs());

            this.TryClose();

}


地址 : 码云

相关文章

网友评论

      本文标题:基于Caliburn.Micro和Telerik的WPF简易订单

      本文链接:https://www.haomeiwen.com/subject/xilmnctx.html