Csharp.md 2.9 KB

C# (.NET WPF) 项目:库存管理系统

概述

使用 C# 和 WPF 为小型企业构建一个库存管理桌面应用。需支持产品 CRUD、库存水平跟踪。

功能需求

1. 主窗口

  • 产品列表: 使用 DataGrid 显示所有产品(ID, 名称, 类别, 单价, 库存量),支持排序。
  • 工具栏: 提供“增/改/删”产品按钮和一个快速搜索框。
  • 状态栏: 显示产品总数和库存总价值。

2. 产品管理

  • 添加/编辑窗口: 在模态窗口中提供表单用于添加或编辑产品信息(名称, 类别, 单价, 库存),包含保存/取消按钮。
  • 删除产品: 删除前需有确认对话框。

3. 库存操作

  • 调整库存: 在 DataGrid 中提供“入库/出库”操作,在弹出窗口中输入调整数量。
  • 低库存警告: DataGrid 中低库存(如 <10)的行应高亮显示。

4. 数据

  • 数据库: 使用轻量级本地数据库(如 SQLite)。
  • 数据访问: 使用 Entity Framework Core (EF Core) 作为 ORM。

技术栈

  • 语言: C#
  • 框架: .NET 8+ (WPF)
  • 设计模式: MVVM
  • 数据访问: EF Core
  • 数据库: SQLite
  • 依赖注入: 推荐使用 .NET Generic Host。

项目结构

/InventoryManager
├── InventoryManager.sln
└── InventoryManager/
    ├── App.xaml / App.xaml.cs      # 应用入口及全局资源
    ├── Models/
    │   └── Product.cs              # EF Core 实体
    ├── Data/
    │   └── AppDbContext.cs         # EF Core DbContext
    ├── ViewModels/
    │   ├── MainViewModel.cs
    │   └── AddEditProductViewModel.cs
    ├── Views/
    │   ├── MainWindow.xaml
    │   └── AddEditProductWindow.xaml
    ├── Services/                   # 服务接口
    ├── Migrations/                 # EF Core 迁移
    ├── appsettings.json            # 配置文件
    └── InventoryManager.csproj

任务步骤

  1. 初始化: 创建 WPF 项目,安装 EF Core, SQLite, 和 Hosting 相关的 NuGet 包。
  2. 数据模型: 创建 Product 实体和 AppDbContext
  3. 数据库迁移: 配置连接字符串,运行 Add-MigrationUpdate-Database
  4. MVVM基础: 创建 ViewModelBase (实现 INotifyPropertyChanged) 和 RelayCommand
  5. 主窗口开发: 设计 MainWindow.xaml 布局,创建 MainViewModel 加载和管理产品数据 (ObservableCollection),并实现增/删/改/查命令。
  6. 编辑窗口开发: 设计 AddEditProductWindow.xaml 及其 ViewModel,在 MainViewModel 中实现调用逻辑。
  7. 数据绑定: 将 View 控件属性绑定到 ViewModel。
  8. 依赖注入 (推荐): 在 App.xaml.cs 中配置 Host,注册 DbContext 和 ViewModels。

先行任务: 设计数据库 Product 表结构,并绘制主窗口和编辑窗口的线框图。