WPF + MVVM 实战轻量级企业订单系统(OMS)
前言在日常运营中订单管理是连接销售、仓储与财务的关键环节。一套稳定、直观且易于维护的订单管理系统不仅能提升工作效率还能减少人为差错。本文推荐一个基于成熟技术栈自主开发轻量级面向实际业务场景的 WPF 订单管理系统。项目介绍项目是WPF 做的一个简易订单系统,采用了Caliburn和Telerik结合的方式,可以作为一些开发的参考。界面以清晰的功能分区和柔和的视觉风格为主主窗口包含四大核心模块出货单管理、客户管理、销售员管理及月度报表。系统通过 Caliburn.Micro 框架实现 MVVM 架构结合 Telerik UI for WPF 提供丰富的交互控件整体代码结构清晰适合用作企业内部工具或 WPF 开发学习参考。项目功能1、支持出货单的新增、浏览与打印可按日或按月筛选订单数据2、客户信息管理包括添加、编辑与查询3、销售员档案维护便于业绩归属与统计4、集成基础报表功能支持生成客户、销售及年度汇总视图5、通过日期选择器动态切换数据范围提升操作效率6、界面根据当前功能模块自动切换工具栏按钮减少误操作项目特点界面设计上主菜单采用圆角大按钮配图标与文字悬停时颜色变化明显点击有阴影反馈兼顾美观与可用性。工具栏则动态显示与当前模块相关的操作项例如进入出货单管理后添加出货单生成打印单等按钮自动可见其他无关按钮则隐藏避免界面杂乱。另外系统充分利用了 Caliburn.Micro 的约定优于配置特性通过命名自动绑定命令如MainButton_Click大幅减少样板代码。项目技术1、基于 .NET Framework 4.6使用 WPF 作为 UI 层。2、核心框架为Caliburn.Micro用于解耦视图与逻辑3、UI 控件库选用Telerik UI for WPF 2015提供高质量的按钮、日期选择器等组件。4、数据访问层整合Dapper作为 ORM 工具轻量高效5、本地数据库采用SQLite无需额外部署服务。项目代码订单数据绑定private void BindListDatas() { Items salerServiceService.GetSalers(string.Empty); } public void Handle(SalerAddedEventArgs message) { BindListDatas(); } public void GridView_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e) { var item ((Telerik.Windows.Controls.DataControl)sender).SelectedItem as Saler; object addView IoC.GetSalerFormViewModel(); eventAggregator.PublishOnUIThread(new SalerEventArgs() { Saler item, FormViewModel FormViewModel.Edit }); dynamic settings new ExpandoObject(); settings.WindowStartupLocation WindowStartupLocation.CenterScreen; settings.AllowsTransparency true; settings.WindowStyle WindowState.Normal; windowManager.ShowDialog(addView, null, settings); } public void Layoff_Click(object sender) { var item ((Telerik.Windows.Controls.RadButton)sender); var cell (Telerik.Windows.Controls.GridView.GridViewCell)item.Parent; Saler saler cell.DataContext as Saler; saler.IsLayoff saler.IsLayoff 0 ? 1 : 0; salerServiceService.UpdateSalerLayoffState(saler); BindListDatas(); CacheHelper.RemoveCacheItem(DictionarysService.SALER_CACHE_KEY); }项目效果首屏即看到四个醒目的功能入口。点击出货单管理顶部工具栏立即切换为订单相关操作并默认加载当日数据。通过日期控件可快速切换至任意月份或日期查看历史订单。系统首页出货单管理客户管理销售管理报表管理项目源码1、项目源码结构清晰XAML 文件定义了完整的 UI 布局包括资源字典中的按钮样式、文本样式等复用元素。2、后台 ViewModel 通过 Caliburn.Micro 的 Action 绑定处理按钮点击事件逻辑集中且易于扩展。3、由于依赖 Telerik 控件库首次编译需确保已安装对应版本Telerik_UI_for_WPF_2015_1_0225_Dev。4、数据库文件为本地 SQLite开箱即用。总结这个 WPF 订单管理系统或许没有炫酷的动画或复杂的 AI 功能但它精准解决了特定场景下的实际问题。在合适的场景下用成熟、稳定的技术栈做出够用就好的工具往往比盲目追求新技术更有价值。对于 WPF 初学者而言该项目也是理解 Caliburn.Micro 与第三方 UI 库协作的最好示例。