.NET
文章平均质量分 66
zLulus
博客园地址:https://www.cnblogs.com/Lulus;
github:https://github.com/zLulus;
QQ:865514198;
CSDN维护较少,有事QQ联系。
展开
-
ASP .NET Core 设置枚举请求和返回使用字符串而非数字
在日常开发中,我们经常会遇到需要传参和返回枚举值,默认情况下我们使用数值,需要双方约定好各种数值代表什么。这样的表示并不明确,无法见名知意。所以我们有没有办法让传参变成字符串,并且我们还能正确转换成枚举值呢?答案是可以。用原生的或者的都可以实现。以下使用原生的说明,只需要在Program.cs添加如下配置即可。根据的说明,可以将枚举值转换为字符串以及从字符串转换为枚举值,并且支持自定义属性名称和值。如果想使用,可以参考。接下来写两个接口用于测试效果如下。原创 2023-03-08 09:43:05 · 775 阅读 · 0 评论 -
ML .NET 电影推荐
参考Movie Recommendation我采用ML .NET自动化模型的推荐方案来完成这件事情场景根据用户以往对电影的评分,向用户推荐他/她可能感兴趣的电影,从而精确推广目标电影给可能感兴趣的用户群体比如,打开某部电影的介绍页面,会有“喜欢这部电影的人也喜欢”这样的栏目或者在用户页面,有推荐电影的栏目数据集原始数据是ml-latest-small.zip,包括4个.csv文件包含了用户id,电影id,电影名称,电影标签,用户对电影的评分,时间信息等信息实际上最后只使用了用户iduser原创 2022-03-18 14:13:18 · 446 阅读 · 0 评论 -
ML .NET 预测订单是否被退货
场景根据历史订单的退货情况,预测新订单是否被退货这次利用ML .NET的数据分类功能,将订单状态分为退货、不退货两种,计算每笔订单被退货、不被退货的概率需要注意的是,这里是文本数据分类,使用数据分类,而之前完成的猫狗分类,需要使用图像分类数据集数据来自Amazon Seller - Order Status Prediction描述:BL(Boss Leathers) 是一家小型皮革制品企业,最近开始在亚马逊上销售其产品。 目前,它在印度市场注册了大约 40 个 SKU。 在过去的几个月里,它因原创 2022-03-18 14:12:45 · 419 阅读 · 0 评论 -
WPF ListBox虚拟化
在ListBox加载大量数据的情况下,如果不进行虚拟化,内存将逐渐增大,长时间运行后将造成卡顿所以需要虚拟化写法<ListBox x:Name="listBox" VirtualizingStackPanel.VirtualizationMode="Recycling" VirtualizingStackPanel.IsVirtualizing="True"> <ListBox.ItemsPanel> <ItemsPanelTemplate &g原创 2022-03-16 10:20:42 · 1135 阅读 · 0 评论 -
EF Code First 快速创建
以.net framework为例,包括数据库管理类库和启动项目两个项目文件数据库管理类库新建一个类库,名称为XXX.Database管理nuget包,引入库EntityFramework 6.2.0创建表public class Student{ [Key] public int Id { get; set; } public string Name { get; set; }}创建DbContext,设置nameOrConnectionString为"YourDatabase"原创 2020-12-08 09:54:44 · 128 阅读 · 0 评论 -
创建Windows Service
基本参照使用C#创建Windows服务,添加了部分内容目录概念创建Windows Service可视化管理Windows Service调试示例代码概念Windows服务是运行在windows后台指定用户下(默认System)的应用程序,它没有标准的UI界面可以设置服务是否与操作系统一起启动,一起关闭。支持三种方式:1)自动启动2)手动启动3)禁用创建Windows Service选择C#标签的Windows Service项目,并创建初始结构目录如下修改Service1为T原创 2020-12-08 09:54:07 · 425 阅读 · 0 评论 -
.net for TCP服务端 && 客户端
关键代码详细代码请看示例代码Service //创建套接字IPEndPoint ipe = new IPEndPoint(IPAddress.Parse(ipaddress), port);//也可以使用IPAddress.Any,监听所有网络接口上的客户端活动//https://docs.microsoft.com/en-us/dotnet/api/system.net.ipaddress.any?view=netframework-4.7.2//一般来说,服务端套接字都是直接bind端口,原创 2020-12-08 09:53:36 · 362 阅读 · 0 评论 -
Entity Framework Core for Console
包Microsoft.EntityFrameworkCoreMicrosoft.EntityFrameworkCore.SqlServerMicrosoft.EntityFrameworkCore.ToolsDbContextpublic class WebCrawlerDbContext : DbContext{ public DbSet<TableName> YourTable { get; set; } protected override void On原创 2020-12-08 09:52:58 · 116 阅读 · 0 评论 -
linq to entity group by 时间
CreationTime是DateTime类型group by 年/月/日/小时group by 年(from d in YourData.OrderBy(x => x.CreationTime) group d by new { time = new { d.CreationTime.Year } } into g select new { AverageValue = g.Average(p => p.Value), CreationTimeStr = g.Key原创 2020-12-08 09:52:18 · 244 阅读 · 0 评论 -
EntityFrameworkCore 一表对多表存在外键的设计
表的基本设计机械M由多个零件C组成不同的零件有不同的属性,所以有C1,C2等等由于零件的差异化,导致C1、C2不能通过统一的表C来表示同时设计接口InterfaceC作为零件表的接口,整合一些统一的内容综上所述,有表M,C1,C2和接口InterfaceC,C1、C2实现InterfaceC遇到的问题在M表中,定义public virtual ICollection<InterfaceC> CList { get; set; }在C1、C2表中定义public int MI原创 2020-12-08 09:50:50 · 625 阅读 · 0 评论 -
C# xml文件读写
写入XDocument document = new XDocument();XElement root = new XElement(Root);foreach(var columnDto in columns){ XElement column = new XElement(Column); column.SetElementValue(nameof(columnDto.Name), columnDto.Name); column.SetElementValue(nameof(column原创 2020-12-04 13:39:00 · 207 阅读 · 0 评论 -
WPF 打印A3 & A4 纸张大小的图片
实现效果实现思路根据整体高宽等比缩放纸张大小以显示进行业务上的编辑出图的时候,等比恢复图片大小至目标纸张大小示例代码PrintImage 的 PrintImageWithPageSettingWindow2原创 2020-12-04 13:36:54 · 534 阅读 · 0 评论 -
WPF Border不响应MouseDown等点击事件
Border默认透明,不响应MouseDown等事件点击会从透明的Border穿过到下一个控件=.=(所以和ZIndex无关)设置Background才能“点击”成功,响应MouseDown事件同理可推导,有时候需要设置容器背景为“白色”,有时候需要设置为“透明”(Transparent),看需求示例代码Borders...原创 2020-12-03 09:44:53 · 2033 阅读 · 0 评论 -
WPF DataGrid 添加Button
<DataGrid ItemsSource="{Binding }" AutoGenerateColumns="False" CanUserAddRows="False"> <DataGrid.Columns> <DataGridTemplateColumn Header="操作" Width="*"> <DataGridTemplateColumn.CellTemplate> &原创 2020-12-03 09:41:59 · 4254 阅读 · 0 评论 -
C# 反射 循环属性、字段赋值
private static void CopyValueToTarget<T>(T source, T target) where T:class{ Type type = source.GetType(); var fields= type.GetRuntimeFields().ToList(); foreach(var field in fields) { field.SetValue(target, field.GetValue(sour原创 2020-12-03 09:41:26 · 456 阅读 · 0 评论 -
WPF 动态生成DataGrid
动态生成DataGrid,包括分页、checkbox、动态绑定数据列、动态生成按钮并绑定事件、允许泛型数据类最新效果图:效果如下:使用只需要配置即可:<datagridwithpages:DataGridWithPage Grid.Row="0" Name="table"></datagridwithpages:DataGridWithPage>//设置表格内容table.Loaded += Table_Loaded;//设置数据源、分页事件//DemoVie原创 2020-12-03 09:40:52 · 1361 阅读 · 1 评论 -
WPF 多用户控件间的切换
使用ContentControl实现多用户控件间的切换多个用户控件共用一个VMeg.银行系统分多个表单(页面)填写信息后,统一提交效果如图:源代码和demo链接原创 2020-12-03 09:40:22 · 632 阅读 · 0 评论 -
WPF DataGrid的Converter获得每行的数据
前端写法获得每行的数据类对象,比如Employee<Path Data="{Binding DataContext, RelativeSource={RelativeSource AncestorType=DataGridRow}, Converter={StaticResource MmsDataToPathConverter}}" />获得DataGridRow<Path Data="{Binding ., RelativeSource={RelativeSource Anc原创 2020-12-03 09:39:51 · 745 阅读 · 0 评论 -
WPF 进度条ProgressBar配文字
效果实现代码<Grid> <ProgressBar Value="50" Name="pbStatus"/> <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Text="{Binding ElementName=pbStatus, Path=Value, StringFormat={}{0:0}%}"></TextBlock></Grid>原创 2020-12-03 09:39:21 · 1074 阅读 · 0 评论 -
WPF DataTemplate的后端用法(动态生成控件)
定义控件可以使用FrameworkElementFactory,也可以使用XmlReaderFrameworkElementFactory的用法为DataGrid添加一列,列的每个单元格包含修改、删除两个按钮DataGridTemplateColumn dataGridTemplateColumn = new DataGridTemplateColumn();dataGridTemplateColumn.Header = "操作";dataGridTemplateColumn.Width = ne原创 2020-12-02 10:57:05 · 1548 阅读 · 0 评论 -
WPF 树状单选&多选功能
代码树状多选可以选择任意节点的树只能选择子节点的树代码树状单选原创 2020-12-02 10:56:26 · 601 阅读 · 2 评论 -
WPF DataGrid 获得某行某列单元格
/// <summary>/// 行、列从0开始计数/// </summary>/// <param name="rowIndex"></param>/// <param name="columnIndex"></param>/// <param name="dg"></param>/// <returns></returns>public DataGridCell GetC原创 2020-12-02 10:55:30 · 1064 阅读 · 0 评论 -
WPF 使用Converter实现控件的动态显隐
效果如图:根据下拉框fieldTypeComboBox,控制其他控件的显隐关键代码<ComboBox Grid.Column="1" Grid.Row="2" DataContext="{Binding FieldTypeEnumInfos}" ItemsSource="{Binding }" Name="fieldTypeComboBox" DisplayMemberPath="Description" SelectedValuePath="Value"></ComboBox&g原创 2020-12-02 10:54:26 · 1003 阅读 · 0 评论 -
WPF 动态加载用户控件
效果如图:完成功能是读取菜单的配置文件,加载菜单,点击选项后,动态生成UI控件并加载到TabControl中关键代码//这里可以动态加载其他dll文件中的组件Assembly assem = Assembly.LoadFile($"{Directory.GetCurrentDirectory()}\\{data.DllName}");var onePage = assem.CreateInstance(data.ClassName);ClosableTab theTabItem = new原创 2020-12-02 10:53:55 · 1474 阅读 · 0 评论 -
WPF ListView DataTemplate & ItemsControl
效果如图:关键代码ListView的DataTemplate是一个单一折叠项的内容ItemsControl是一个列表的内容,之前列表使用DataGrid,但加载速度慢,所以改为ItemsControl<ListView Name="listView" HorizontalAlignment="Center" ItemsSource="{Binding }"> <ListView.ItemTemplate> <DataTemplate>原创 2020-12-02 10:53:08 · 1241 阅读 · 0 评论 -
WPF 加载动画
效果如图:关键代码实现动画<Grid x:Name="LayoutRoot" Background="Transparent" ToolTip="Searching...." HorizontalAlignment="Center" VerticalAlignment="Center"> <Canvas RenderTransformOrigin="0.5,0.5" HorizontalAlignmen原创 2020-12-02 10:52:38 · 1100 阅读 · 1 评论 -
WPF 获得Template中的控件
关键代码var template = checkBox1.Template;var myControl = template.FindName("textBlock1", checkBox1);var tb = myControl as TextBlock;tb.Background = new SolidColorBrush(Colors.LightPink);示例代码ControlTemplateDemo.xamlControlTemplateDemo.xaml.cs参考资料How原创 2020-12-02 10:52:06 · 505 阅读 · 0 评论 -
WPF MultiBinding 和 Converter
效果如图上图中,最下方TextBlock控件的Visibility属性由ComboBox和CheckBox的值共同决定,当ComboBox选择“是”,CheckBox被勾选时,Visibility属性为可见的,其余情况为不可见。关键代码<local:MultiBinding2Converter x:Key="MultiBinding2Converter"></local:MultiBinding2Converter><TextBlock Text="判断是否显示的文字原创 2020-12-02 10:51:30 · 730 阅读 · 0 评论 -
WPF 解决ShowInTaskbar=false的窗口在失去焦点后无法找到的问题
效果如图所示这是失去焦点后找不到窗口,并且无法与主窗体交互的情况这是修复后可以正常交互的情况解决方法是设置Owner属性关键代码//GetForegroundWindow API[DllImport("user32.dll")]static extern IntPtr GetForegroundWindow();//从Handle中获取Window对象static Window GetWindowFromHwnd(IntPtr hwnd){ var window = Hwn原创 2020-12-01 14:30:34 · 604 阅读 · 0 评论 -
WPF ComboBox
本文主要探讨ComboBox的数据源设置、选中数据的绑定(SelectedItem和SelectedValue用法)的问题绑定数据源 & 设置显示路径<ComboBox ItemsSource="{Binding Fruits}" DisplayMemberPath="Name" ></ComboBox>ComboBox单项的数据结构为FruitViewModelpublic class FruitViewModel: INotifyPropertyChanged原创 2020-12-01 14:29:55 · 337 阅读 · 0 评论 -
WPF 自定义内容的弹窗
目标是重复使用固定的弹窗样式,并提供确认和取消按钮,而弹窗的具体内容则由传参决定。为了达到目的,使用ContentControl设置内容,并通过新增ShowDialog方法为确认按钮添加业务逻辑。效果如图:绿色框的部分为自定义内容关键代码设置ContentControl<ContentControl Grid.Row="0" Margin="0" x:Name="contentContainer" />public CustomDialog(UserControl contr原创 2020-12-01 14:29:21 · 1270 阅读 · 0 评论 -
WPF 验证表单方法3(弹窗)
本文讲述,当弹窗样式固定,表单与提交按钮不在同一个文件下时,如何控制提交按钮是否可用比如自定义内容的弹窗就是这种情况此时,我们希望无论自定义内容是什么,它都可以控制弹窗Window的提交按钮效果如图这里的内容和弹窗是分隔开的该文章基于WPF 验证表单方法1,在前文中讲述的内容不再赘述首先,在自定义内容UserControl中设置一个控制提交按钮的属性这里选择在ViewModel中添加IsSubmitButtonEnable属性private bool isSubmitButtonEnabl原创 2020-12-01 14:24:38 · 370 阅读 · 0 评论 -
WPF 验证表单方法2
示例来自How to disable a Button on TextBox ValidationErrors in WPF效果如图继承ValidationRule实现验证类public class OverThirteenValidationRule : ValidationRule{ public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)原创 2020-12-01 14:24:07 · 415 阅读 · 0 评论 -
WPF 验证表单方法1
效果如图验证表单的关键是使用ValidationRule,官方资料:ValidationRule 类、How to: Implement Binding Validation继承ValidationRule实现验证类public class LengLimitValidationRule: ValidationRule{ public override ValidationResult Validate(object value, System.Globalization.CultureI原创 2020-12-01 14:23:25 · 801 阅读 · 2 评论 -
WPF TrreView 递归绑定数据源
效果如图数据结构public class DisplayViewModel{ public string Name { get; set; } public List<DisplayViewModel> Children { get; set; }}前端TreeView通过ItemTemplate为其子级设置样式<TreeView x:Name="treeView"> <TreeView.ItemTemplate>原创 2020-12-01 14:22:38 · 177 阅读 · 0 评论 -
WCF 32位程序调试报错
报错未能加载文件或程序集“XXXXXX”或它的某一个依赖项。试图加载格式不正确的程序。实际上是因为引用了32位的类库,故将WCF项目生成的目标平台改为32位(x86),然后启动调试时报错:System.BadImageFormatException: 未能加载文件或程序集“”或它的某一个依赖项。试图加载格式不正确的程序。文件名:“” 在 System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBas原创 2020-12-01 14:22:01 · 563 阅读 · 0 评论 -
C#实现OBB碰撞算法
原理在这里代码翻写自Simple Oriented Bounding Box OBB collision detection explaining的高赞答案(C++)向量类Vec3public class Vec3{ public float X { get; set; } public float Y { get; set; } public float Z { get; set; } public Vec3() { } public V原创 2020-12-01 14:18:18 · 871 阅读 · 0 评论 -
基于ArcGIS开发动态视域效果
说明sdk为ArcGIS Runtime SDK for .NET(100.9.0),参考资料有Viewshed (location),Viewshed for GeoElement本文主要在动态视域的基础上添加了自定义路线,实现效果如图效果图Viewshed for GeoElement的官方示例为手动点击触发,想将其变为自定义路线循环运行,需要完成以下几点:1.设置一个定时器,完成坦克移动的整个轨迹2.MoveTank方法每次只移动了一点点距离,需要循环调用来完成从一个点到另一个点的移动3原创 2020-12-01 14:17:02 · 269 阅读 · 0 评论 -
基于ArcGIS开发3D立方体空间关系判断
本文基于ArcGIS Runtime SDK for .NET(100.9.0),官方有2D的资料Spatial relationships,本文完成三维的立方体是否相交的判定,效果如图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JWXnIrxF-1606466099992)(https://img2020.cnblogs.com/blog/942899/202011/942899-20201109143035221-1991025870.gif)]实现思路地图初始化原创 2020-11-27 16:34:55 · 306 阅读 · 0 评论 -
WPF 使用Popup和TreeView实现树状下拉框
效果如图单选<Grid Margin="15,5,0,15"> <Grid.RowDefinitions> <RowDefinition Height="30" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <TextBox Grid.Row="0" x:Name="singleHeader" Width="300"原创 2020-11-27 16:11:39 · 1710 阅读 · 0 评论