CgdataBase.WPF.Plus 1.9.11

There is a newer version of this package available.
See the version list below for details.
dotnet add package CgdataBase.WPF.Plus --version 1.9.11
                    
NuGet\Install-Package CgdataBase.WPF.Plus -Version 1.9.11
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="CgdataBase.WPF.Plus" Version="1.9.11" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="CgdataBase.WPF.Plus" Version="1.9.11" />
                    
Directory.Packages.props
<PackageReference Include="CgdataBase.WPF.Plus" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add CgdataBase.WPF.Plus --version 1.9.11
                    
#r "nuget: CgdataBase.WPF.Plus, 1.9.11"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package CgdataBase.WPF.Plus@1.9.11
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=CgdataBase.WPF.Plus&version=1.9.11
                    
Install as a Cake Addin
#tool nuget:?package=CgdataBase.WPF.Plus&version=1.9.11
                    
Install as a Cake Tool

CgdataBase.WPF.Plus

概述

CgdataBase.WPF.Plus 是面向 WPF 应用的“增强包”,在 CgdataBase.WPF.Common 的基础上,进一步整合了:

  • 数据访问(FreeSql 的轻量封装,支持离线 SQLite / 在线 MySQL 等)
  • 一组开箱即用的对话框与业务窗口(输入框、消息框、关于、设置、字体选择、语音选择等)

适合希望快速搭建基础设施(配置、通知、日志、DI、数据访问)并直接复用常用窗口的 WPF 项目。

目标框架

  • net8.0-windows
  • net10.0-windows

依赖关系

  • 直接依赖:
    • CgdataBase.WPF.Common:WPF 通用基础设施与控件/行为(通知、单例、校验、Excel、版本探测、IocManage 等)
    • CgdataBase.FreeSql:FreeSql 相关封装(IDataHelper / DataHelper 等)
  • 传递依赖(由项目文件决定,以下为主要组件):
    • FreeSql 及其驱动/扩展:FreeSql.Extensions.JsonMapFreeSql.Provider.MySqlConnectorFreeSql.Provider.Sqlite
    • MiniExcel:Excel 导入/导出(语音库导入/导出)
    • Prism.Unity:MVVM / 容器 / DelegateCommand 等(来自 CgdataBase.WPF.Common
    • PropertyChanged.Fody:属性变更编织(部分 ViewModel 使用 DependsOn 等特性)

目录结构

  • Models/:业务模型示例(如 VoiceInfo
  • ViewModels/:窗口对应的 ViewModel(如 WinSettingsBaseViewModelWinSelectVoiceViewModel
  • Views/:可复用窗口/控件(输入框、消息框、关于、设置、字体/语音选择等)

主要能力

1) 数据访问:IDataHelper / DataHelper(FreeSql 封装)

  • 提供常用 CRUD 封装:新增、更新、删除、查询、按条件筛选、按主键查询、SQL 查询等
  • 支持离线数据库模式:默认使用程序目录下的 database.db(SQLite),无需额外部署
  • 支持在线数据库模式:根据 IAppSettingsBase 中的 DatabaseType / DatabaseConnectionString 初始化连接

相关类型:

  • IDataHelper / DataHelper(来自 CgdataBase.FreeSql
  • IBaseInfo:数据表实体基础接口(需包含 Id 主键)

2) 常用窗口与对话框(Views)

  • MessageBox:统一风格的消息框(支持 OK/OKCancel/YesNo/YesNoCancel
  • InputBox / InputBox2:输入对话框(单行/多行)
  • WinAbout:关于窗口(可选:版本检查入口)
  • WinSettingsBase:通用设置窗口(字体 / 数据库 / 文本字体等)
  • WinSelectFont:字体选择窗口(支持中文字体过滤)
  • WinSelectVoice:语音选择窗口(支持筛选、编辑、导入/导出)

3) 语音库管理(WinSelectVoiceViewModel)

  • 支持按性别与关键字过滤(ShowItems
  • 支持语音个性字段编辑、删除、清空
  • 支持 Excel 导入/导出(.xlsx,基于 MiniExcel
  • 数据持久化基于 IDataHelper,实体示例为 VoiceInfo

快速开始

1) 安装

通过 NuGet 引用 CgdataBase.WPF.Plus(会自动带上所需的基础包与依赖)。

2) 初始化配置与数据访问

在应用启动时加载配置,并初始化 IocManage 与数据库连接(示例为 Prism 应用,非 Prism 场景可自行调整容器与配置注册方式):

var settings = new AppSettingsBase();
settings.LoadConfig();

IocManage.Initialize(containerProvider, settings);
DataHelper.InitializeDatabase(settings, DataHelper.Instance);

3) 使用内置对话框

var text = InputBox.Show(ApplicationBase.GetActiveWindow(), "请输入内容:", "", "输入");
if (text.IsContainValidText())
{
    MessageBox.Show(ApplicationBase.GetActiveWindow(), $"你输入的是:{text}", "提示");
}

4) 打开设置窗口(WinSettingsBase)

var win = new WinSettingsBase { Owner = ApplicationBase.GetActiveWindow() };
win.DataContext = new WinSettingsBaseViewModel(IocManage.Settings, SettingsMode.字体_数据库);
win.ShowDialog();

5) 打开语音选择窗口(WinSelectVoice)

var win = new WinSelectVoice { Owner = ApplicationBase.GetActiveWindow() };
var vm = new WinSelectVoiceViewModel(IocManage.Settings, DataHelper.Instance);
win.DataContext = vm;

vm.LoadInfo(voiceName: "");
if (win.ShowDialog() == true)
{
    var selected = vm.SelectedItem;
    var voiceName = selected?.Name;
}

相关说明

Product Compatible and additional computed target framework versions.
.NET net8.0-windows7.0 is compatible.  net9.0-windows was computed.  net10.0-windows was computed.  net10.0-windows7.0 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.9.21 90 4/15/2026
1.9.19 83 4/8/2026
1.9.16 80 4/7/2026
1.9.12 92 4/3/2026
1.9.11 99 3/25/2026
1.9.8.2 90 3/23/2026
1.9.7 84 3/23/2026
1.9.6 90 3/20/2026
1.9.5 90 3/19/2026
1.9.4 89 3/18/2026
1.9.3.3 112 2/10/2026
1.9.3.2 100 2/10/2026
1.9.3.1 101 2/6/2026
1.9.3 115 1/6/2026
1.9.2.3 197 12/25/2025
1.9.2.2 130 12/13/2025
1.9.2.1 197 12/5/2025
1.9.1.3 209 11/25/2025
1.9.1 280 11/22/2025
1.9.0 340 11/21/2025
Loading failed