# 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-Migration` 和 `Update-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` 表结构,并绘制主窗口和编辑窗口的线框图。