- 博客(46)
- 资源 (10)
- 收藏
- 关注
原创 C#中List、Path、字符串操作等常用方法总结
定义:string str = “Hello, World!访问字符:char c = str[0];// ‘H’长度:int len = str.Length;// 13。
2025-08-17 18:06:14
637
原创 WPF&C#超市管理系统(6)订单详情、顾客注册、商品销售排行查询和库存提示、LiveChat报表
10.2 功能实现新增SignUpView和SignUpViewModel,复用AddCustomerView和AddCustomerViewModel的界面和功能,实现如下功能代码如下:14. LiveChart报表可以采用Nuget中LiveChart.wpf创建报表。参考链接https://livecharts.dev/docs/wpf/2.0.0-rc5.4/gallery以产品月份销售数量趋势图和销售柱状图为例,展示如下:资源下载:https://dow
2025-08-17 16:03:18
1087
原创 WPF&C#超市管理系统(5)商品布局、顾客登录、商品下单
在商品管理界面为增加和修改功能增加Title属性,如苹果添加的标题为 越南进口苹果3个装 标准果 500-550g。将ItemControl的布局方式设置为瀑布流WrapPanel。设置选中后的改变样式,鼠标移入显示商品框。实现效果如下图:8.2 顾客登录由于原设计人员表分为了Customer表和Member表,此处需要在数据库中为Customer表人员增加Password列,默认设置密码为1。在Visual Studio中更新Customer表。修改登录页面,在密码下新增顾客类别。
2025-08-10 16:34:48
842
原创 C#模式匹配用法与总结
模式匹配是C# 7.0引入的机制,用于检查数据的类型、值或结构,并提取信息。语句/表达式实现,显著简化条件逻辑,提升代码可读性和安全性。
2025-08-03 14:54:04
1376
原创 WPF&C#超市管理系统(4)入库管理、出库管理
7.2 入库实现显示名称、图片、单位由于StockRecord表内未设置商品名称,因此名称需要通过部分类实现。在Entity→Model中新建StockRecord:BaseModel。7.3 界面设计已有UserControl文件InstorageView.xaml,复用ProductView.xaml内容并修改相应内容。7.3 功能实现InstorageViewModel,需要设计商品列表和选择项,入库数量绑定StockRecord表中的Quantity。功能有入库和删除两个。
2025-08-02 18:52:26
756
原创 List和 ObservableCollection 的区别
动态添加元素时,UI无需手动刷新即可同步显示新数据。接口,当集合元素被添加、删除、替换或重置时,会自动触发。事件,通知绑定的UI控件更新(如WPF的。无内置变更通知机制。或重新赋值整个集合才能触发UI更新。在UI线程修改集合,避免跨线程异常。结合,实现筛选、排序等高级视图功能。同样非线程安全,需手动加锁(如。提供丰富的LINQ方法(如。),适合复杂数据查询与转换。语句)保护多线程访问。
2025-07-31 08:18:26
968
原创 WPF&C#超市管理系统(3)商品管理
新增枚举类型商品单位UnitType.cs6.1 添加商品将数据库Product表的Category从int改为nvarchar(50),在Visual Studio中删掉Product表并从模型更新新表新增AddProductView.xaml,复用AddCustomerView.xaml并修改,新增加ImageSource属性和上传图片的SelectImageCommand命令。AddCustomerViewModel内增加SupplierList属性、SupplierList属性、sup
2025-07-30 22:32:06
1667
原创 WPF&C#超市管理系统(2)顾客管理、供应商管理、用户管理
在CustomerViewModel.cs添加Loaded事件,其公共模板如下,同时应用于各菜单页面3.1 顾客新增在View文件夹新增窗体AddCustomerView.xamlViewModel文件夹新建AddCustomerViewModel类并继承ViewModelBase2,按照格式放在容器ViewModelLocator中,将AddCustomerView.xaml的DataContext设置绑定到AddCustomerViewModel上,功能实现代码如下:在Sty
2025-07-27 17:03:29
1330
原创 Delegate、Action 与 Func 委托的全面解析
Action 和 Func 委托是 C# 中极其强大的工具简化代码:减少自定义委托类型的需要,使代码更简洁提高可读性:通过明确的命名表达意图增强灵活性:支持将方法作为参数传递,实现策略模式等与Lambda完美结合:支持使用简洁的Lambda表达式定义行为是LINQ的基础:Func委托是LINQ查询的核心组件。
2025-07-24 14:49:27
1205
原创 WPF学习笔记(27)Interaction.Triggers的意义与使用方式
Interaction.Triggers是WPF中实现交互功能的重要机制,尤其在MVVM模式下提供了一种将UI事件与ViewModel逻辑解耦的优雅方式。
2025-07-20 21:45:38
1456
原创 C#中的LINQ解析
LINQ是.NET Framework 3.5引入的一项技术,它允许开发者使用类似SQL的语法来查询各种数据源。LINQ的主要价值在于:统一查询模型:提供一致的语法查询不同类型的数据源(集合、数据库、XML等)类型安全:编译时检查查询的正确性,减少运行时错误提高生产力:减少样板代码,使查询逻辑更加直观和简洁语言集成:直接使用C#语法编写查询,无需学习特定领域语言(如SQL、XPath等)
2025-07-17 08:56:29
768
原创 C#中Lambda表达式与=>运算符
Lambda表达式是C#中一种简洁的表示匿名函数的方法,它使用=>运算符(称为lambda运算符)将参数列表与表达式或语句块分隔开。Lambda表达式主要用于LINQ查询、事件处理程序、回调函数等场景,使得代码更加简洁和易于阅读。:参数列表,可以为空或包含多个参数=>:lambda运算符,分隔参数列表和方法体:可以是一个表达式(当Lambda返回值时)或者是一个语句块(当Lambda是一个复杂方法时)C#中的=>
2025-07-16 15:07:57
1090
原创 ObservableCollection全面解析
ObservableCollection<T>是System.Collections.ObjectModel命名空间下的一个泛型集合类,它继承自Collection<T>并实现了INotifyCollectionChanged和INotifyPropertyChanged接口。其核心特性包括:自动变更通知:当集合中的元素被添加、移除或整个列表被重置时,会自动触发CollectionChanged事件UI同步更新。
2025-07-16 10:51:29
788
原创 C#中Static关键字解析
Static是C#中的一个修饰符,用于声明属于类型本身而不是特定对象的成员。使用static修饰的成员与类相关联,而不是与类的实例相关联。这意味着:类级别存储:静态成员在内存中只有一份拷贝,无论创建多少个类的实例直接访问:可以通过类名直接访问静态成员,无需创建类的实例共享性:所有实例共享同一个静态成员,修改一处会影响所有使用该成员的地方静态成员包括静态类、静态方法、静态属性、静态字段和静态构造函数等。Static关键字是C#中一个功能强大但需要谨慎使用的特性。实现了以下价值。
2025-07-15 10:06:11
1197
原创 C#反射机制与Activator.CreateInstance
反射和Activator.CreateInstance是C#中强大的动态编程工具,它们为插件系统、依赖注入、ORM等场景提供了必要的灵活性。然而,使用时应当遵循以下最佳实践:明确使用场景:仅在真正需要动态行为的场景使用反射性能与灵活性平衡:在高频调用路径避免使用反射,或采用缓存优化类型安全:始终验证类型转换的安全性,避免运行时错误异常处理:妥善处理反射可能抛出的各种异常代码可维护性:避免过度使用反射导致代码难以理解和维护。
2025-07-15 09:37:51
680
原创 C#单例模式管理全局变量
单例模式(Singleton Pattern)是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来访问该实例。这种模式在需要控制资源访问或确保系统中某个类只有一个实例时非常有用。唯一性:确保在整个应用程序生命周期内,类只有一个实例存在全局访问点:通过静态属性或方法提供对单例实例的全局访问延迟初始化:许多实现支持按需创建实例,节省系统资源。
2025-07-13 14:56:10
910
原创 WPF学习笔记(26)CommunityToolkit.Mvvm与MaterialDesignThemes
官方文档:https://learn.microsoft.com/zh-cn/dotnet/communitytoolkit/mvvm/以上文中的LoginViewModel为例,将自写的BaseViewModel类改为继承自CommunityToolkit.Mvvm中的ObservableObject将自写的MainWindowViewModel类改为继承自CommunityToolkit.Mvvm中的ObservableObject官方文档:https://learn.microsoft.
2025-07-06 17:33:36
1269
原创 WPF学习笔记(25)MVVM框架与项目实例
官方文档:https://learn.microsoft.com/zh-cn/dotnet/architecture/maui/mvvm以一个简单的图书管理系统为例,包含登录和图书删除两个功能。Model创建Book、DAL、User,内容如下:View创建Login,内容如下:2. LoginViewModel与LoginViewModel创建LoginViewModel,为界面上的用户名和密码输入框设计属性,并继承InotifyPertyChanged接口,实现数据双向更新
2025-07-05 23:17:32
1340
2
原创 WPF学习笔记(24)命令与ICommand接口
关于ButtonBase、CanExecuteChangedEventManager、commandHelpers的详细原理、我们可以参考WPF框架的源码。
2025-07-05 15:22:22
1055
原创 WPF学习笔记(23)Window、Page与Frame、ViewBox
本文介绍了WPF中的Window、Page、Frame和ViewBox控件特性及用法。Window部分区分了模态/非模态窗口,列举了常用属性和方法,并给出窗口位置调整示例。Page作为可导航页面,需与Frame或NavigationWindow配合使用。Frame是支持导航的内容控件,展示了多种导航方式和历史记录功能。ViewBox则用于界面元素的自适应缩放。文中包含代码示例和界面效果图,演示了各控件的实际应用场景。
2025-07-04 22:11:25
815
原创 WPF学习笔记(22)项面板模板ltemsPanelTemplate与三种模板总结
ltemsPanelTemplate类是用于定义项控件(ItemsControl)的布局面板的一种模板,它允许开发人员自定义如何排列和呈现项控件中的子项。
2025-07-03 22:14:58
530
原创 WPF学习笔记(16)树控件TreeView与数据模板
TreeView在树结构(其中的项可以展开和折叠)中显示分层数据。。TreeViewItem类代表一个在树控件中可以选择的项。HierarchicalDataTemplate可以继承并递归展示子节点。
2025-07-03 21:44:44
1001
原创 WPF学习笔记(21)ListBox、ListView与控件模板
ltemsPresenter类在控件模板中显示集合数据的一个占位符,以便在运行时将其替换为所有集合数据。而ContentPresenter则只能显示单一内容。
2025-07-02 13:11:54
489
原创 WPF学习笔记(20)Button与控件模板
示例代码与运行效果如下:--自定义示例--> < Style TargetType = " Button " > <Setter Property= "Template" ><Grid></Grid></Trigger></Trigger>
2025-07-02 11:08:03
435
原创 测绘工具箱(1)坐标txt生成KML文件
刚好最近几天比较闲,心血来潮就研究了一下kml文件,发现是xml格式的文档,于是利用C#参照测量软件生成的kml文件格式写了一个生成kml文件的程序。计划今年有时间自己写一个测量工具集合的小软件,那就先从这个功能开始吧。作为一名测量工程师,日常扛杆扶尺,做控制、测地形图,经常需要利用工具生成kml文件导入手簿。
2025-07-02 08:34:21
199
原创 WPF学习笔记(19)控件模板ControlTemplate与内容呈现ContentPresenter
WPF 中的大多数控件都有默认的控件模板。这些模板定义了控件的默认外观和行为,包括控件的布局、背景、前景、边框、内容等。ControlTemplate 类在 WPF 中的作用是定义控件的外观和布局,重新定义 ControlTemplate 可以极大地更改控件的外观。ContentPresenter类与ContentControl 使用非常类似,可以用作控件模板中的一个占位符,以便在运行时将其替换为具体内容。
2025-07-01 22:45:00
962
原创 WPF学习笔记(17)样式Style
样式(Style类)用于给控件定义外观,样式包含一个或多个 Setter对象的集合,每个 Setter由 Property和 Value组成。样式也是一种资源,可以像引用任何其他资源一样对其进行引用。Style中可以通过Setter和EventSetter设置统一的样式属性和事件Style中的样式可通过BasedOn继承。
2025-07-01 22:00:00
482
原创 WPF学习笔记(14)列表视图控件ListView与数据模板
ListView继承与ListBox,也是一个用于显示的控件。ListView是ListBox的子类,继承了所有父类的属性使用GridViewCoulmn的属性设置相应内容的数据模板。
2025-06-30 10:52:03
1086
原创 WPF学习笔记(12)下拉框控件ComboBox与数据模板
ComboBox类代表一个有下拉列表的选择控件,供用户选择。ComboBox控件内容的三种实现方式数据模板定义方法。
2025-06-29 21:22:23
1012
原创 WPF学习笔记(11)数据模板DataTemplate与数据模板选择器DataTemplateSelector
DataTemplate 表示数据模板、定义如何显示一些复杂的数据,决定了数据展示的外观。属性说 明DataType获取或设置此DataTemplate所针对的数据类型。DataTemplateSelector提供一种方法来根据绑定的数据选择数据模板。可重写方法当在派生类中重写时,根据数据返回基于自定义逻辑的 DataTemplate。item要为其选择模板的数据对象,container数据绑定对象。DataTemplate的三种用法:①在资源中直接描述 类的数据显示的数据模板。
2025-06-29 12:00:34
2810
原创 WPF学习笔记(4)常用控件Image、Slider、ProgressBar、Border、ContentControl
添加的image属性的生成操作有多个选项,且已默认设置Pack URI的格式,绝对路径、相对路径Border类可使用父类UlElement的Clip属性进行裁剪ContentControl内设置多个空间时可使用Grid控件。
2025-06-21 22:42:54
511
原创 WPF学习笔记(3)常用控件Label、TextBlock、TextBox、Button、RadioButton、CheckBox
介绍了6个控件的部分属性、方法和事件,以及常用事件调用方法。
2025-06-20 17:36:27
715
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人