自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 MVVM之INotifyPropertyChanged接口的几种实现方式(2)

方法二,使用Lambda表达式,静态扩展语法public static class NotificationExtensions{public static void Notify(this PropertyChangedEventHandler eventHandler, Expression<Func> expression){if( null == eventHandler ){return;}var lambda = expression as LambdaExpres

2020-08-09 17:42:38 348

原创 MVVM之INotifyPropertyChanged接口的几种实现方式(1)

借助WPF/Sliverlight强大的数据绑定功能,可以比实现比MFC,WinForm更加优雅轻松的数据绑定。但是在使用WPF/Silverlight绑定时,有件事情是很苦恼的:当ViewModel对象放生改变,需要通知UI。我们可以让VM对象实现INotifyPropertyChanged接口,通过事件来通知UI。但问题就出现这里……一,描述问题情形:现在需要将一个Person对象的Name熟悉双向绑定到UI中的TextBox,的确这是一件很简单的事情,但还是描述下:C# Code:publi

2020-08-09 17:35:43 506

原创 Android——Activity工作流程(2)

6.准备工作  1.下载activity(Activity官网下载)  http://activiti.org/download.html  2.Eclipse安装流程设计器插件  在有网络情况下:    打开 Help -> Install New Software,如下图:点击Add按钮,装配新插件名称的地址,填下以下字段      Name: Activiti BPMN 2.0 designerLocation: http://activiti.org/designer/up

2020-06-18 21:27:19 561

原创 Android——Activity工作流程(1)

1.概念 工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。 2.Activity介绍  Activiti5是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。Activiti基于Apach

2020-06-18 21:22:37 314

原创 Android——TabLayout+ViewPager实现切面(2)

2.3 字符和图片菜单栏实现图片加汉字菜单栏,菜单栏每项都是一个视图可以自定义设计菜单栏每项的布局文件设计:一个图片显示和一个文字显示,定义为垂直布局,其中android:layout_gravity="center"是把控件居中,这里不写,在菜单栏显示时可能会出现错位主布局文件更改:在主布局文件的<android.support.design.widget.TabLayout>更改android:layout_height=“70dp”,表示其菜单栏的高度改变。定义必要的类变量:

2020-06-08 22:17:27 150 1

原创 Android——TabLayout+ViewPager实现切面(1)

安卓使用TabLayout+ViewPager+Fragment 实现页面切换,可实现左右滑动切换视图界面和点击切换可自定义菜单栏是在顶部还是在底部一、实现过程:2.1 一些重要的设置添加必须依赖:因为需要使用:import android.support.design.widget.TabLayout;,所以必须添加下列依赖使用Android Studio3时,此步可能出现问题,请参考下面的升级篇主布局文件编写:顶部或者底部显示,只要更改ViewPager和TabLayout排列顺序即可

2020-06-08 22:13:33 221

原创 HomeFragment无法在Android中转换为Fragment

我试图在类似的问题中找到答案,但它没有奏效。我正在和android工作室工作。我在这部分代码中收到错误:我得到错误:不兼容类型:HomeFragment无法转换为片段这是进口:这是类标题:无论我尝试过,我仍然收到这个错误,任何帮助?另一件事,我已经尝试了很多导航栏的教程,但是它们似乎都没有。可以anyne链接我一个好的吗?这似乎是一个进口问题。确保您的Fragment类扩展Fragment类。如果任何机会使用导入android.support.v4.app.Fragment,那么您

2020-05-28 19:46:59 607

原创 Android——Activity的各回调方法(3)

onUserInteraction()、onUserLeaveHint():两个长的很像的方法,onUserInteraction()比较好理解,只要用户与Activity有交互就会调用,比如说按了个键、触了个屏、滚了个轨迹球…专业来讲就是只要有事件分发给Activity的时候就会首先调用onUserInteraction(),所以你去看Activity的源码可以发现,在dispatchXXXEvent()的方法体里面,首先就是调onUserInteraction()。哦,除了dispatchPopul

2020-05-28 18:54:06 1886

原创 Android——Activity的各回调方法(2)

onApplyThemeResource():一般来说在AndroidManifest.xml的application标签下会全局设置一个theme属性,或者单独为每个activity设置也可以,这样onApplyThemeResource()方法会先于onCreate()调用,当然你若是不在AndroidManifest.xml设置,硬是单单在onCreate()里面调用setTheme()方法也是可以的,这样onApplyThemeResource()就会在onCreate()后调用了。这个方法顾名

2020-05-18 19:02:36 1196

原创 Android——Activity的各回调方法(1)

探究activity的各回调方法之前,首先插入一张官方的生命周期图,然后用适合自己的语言记录下简化的生命周期中各回调方法的涵义。onCreate()一般人认为的activity的入口(然而不是),当activity第一次created之后会回调这个方法。如果把activity比作房子的话,回调这个方法之前activity还只是一个毛坯房,我们要在这个方法里边对它进行装修,这样它随后显示的效果就跟我们所预想的一样了。onstart() :这个时候我们可以看到activity了。onResume()

2020-05-18 18:56:49 2049

原创 Android中点击按钮的事件处理实现步骤

1、事件源2、设置事件3、处理事件

2020-05-08 17:42:58 727

原创 Android实现动态添加标签及其点击事件

在做Android开发的时候,会遇到动态添加标签让用户选择的功能,所以自己写了一个例子,运行效果图如下标签可以左右滑动进行选择,单击的时候,会放toast提示选择或取消选择了哪个标签。通过动态添加TextView作为标签,并给TextView设置背景,通过selector选择器改变其背景颜色,来确定是否被替换状态。代码如下所示:1,标签的布局文件,我在标签里只设置了一个TextView2、在res文件夹下新建drawable文件夹,标签的背景设置@ drawable / mark_select,

2020-05-08 17:37:48 1303

原创 Android——自定义控件

今天总结一下Android开发中的自定义控件的开发,Android中所有控件和布局的基类都是View,自定义控件也就是继承View或者View的派生类,然后再重写类中的内部方法。通常来说自定义控件分为三种:1.自定义View:继承View2.基于现有组件:继承View的派生类3.组合的方式:自定义控件中包含了其他的组件下图体现了各种控件的继承关系:View派生类.png来实践一下有...

2020-05-05 18:01:46 149

原创 Android——ImageViewBorder类中ScaleType属性

使用ImageView时经常会用到scaleType属性,如:scaleType属性的各个值总是记不住之间的区别。今天找点时间总结了一下:scaleType的属性值有:matrix fitXY fitStart fitCenter fitEnd center centerCrop centerInside它们之间的区别如下:matrix 用矩阵来绘制(从左上角起始的矩...

2020-05-05 17:58:20 113

原创 WPF——附加事件

附加属性如果不和事务处理在一起,或者不是由Ulement所派生的 ,附属事件的意义很小。附加事件不同附加属性。附加事件属于路由事件的一种。附加事件的引发必须在由Ulement所派生的类,具体而言就是Ulement的RaiseEvent方法引发附加事件的类不是由Ulement所派生的,那么不会编写Xaml代码附加事件由EventManager.RegisterRoutedEvent注册。...

2020-04-28 15:17:39 475

原创 .NET 实现异步处理的集中方式

对于异步,相信大家都不十分陌生。准确点来说就是方法执行后立即返回,待到执行完毕会进行通知。就是当一个任务在执行的时候,尤其是需要耗费很长的时间进行处理的任务,如果利用单线程进行操作的话,势必造成界面的阻塞;而利用异步方式,则不会出现这种情况。 区别于同步处理,可以说阻塞的异步其实就相当于同步。同步方式的实现先来看一个同步的例子:假设现在我们需要导入文本文件的内容,然后对文件内容做处理。那么这...

2020-04-28 15:14:08 724

原创 WPF——ScrollViewer控件

因为计算机屏幕的显示区域大小是固定的,如果我们要显示给用户看的内容,大大超出了计算机屏幕的最大显示区域、窗体、容器的限定显示页面,则超出的部分就会破坏原有的布局,这个时候我们就要使用类似于浏览器的那个滚动条的效果了。利用 ScrollViewer 控件可以方便地使应用程序中的内容具备滚动条功能。接下来,我们来做个示例,效果如下图:XAML代码实现:C#代码:...

2019-09-18 15:53:36 1696

原创 WPF——布局与控件Border

Border 是一个装饰的控件,此控件绘制边框及背景,在 Border 中只能有一个子控件,若要显示多个子控件,需要将一个附加的 Panel 控件放置在父 Border 中。然后可以将子控件放置在该 Panel控件中。Border 的几个重要属性:Background:用用一个 Brush 对象来绘制背景 ;BorderBrush:用一个Brush 对象来绘制边框 ;BorderThick...

2019-09-18 15:50:36 801

原创 WPF——ViewBox控件

ViewBox这个控件通常和其他控件结合起来使用,是WPF中非常有用的控件。定义一个内容容器。ViewBox组件的作用是拉伸或延展位于其中的组件,以填满可用空间,使之有更好的布局及视觉效果。一个 Viewbox中只能放一个控件。如果多添加了一个控件就会报错。如下图。组件常用属性:Child:获取或设置一个ViewBox元素的单一子元素。Stretch:获取或设置拉伸模式以决定该组件中的内...

2019-08-18 09:34:13 10267 3

原创 WPF——Grid后台代码

通过Entity Framework 6.1 从数据库(本地数据库(local)/Test中的S_City表中读取城市信息数据,从S_ Province表中读取省份信息,然后通过绑定的方式反数据显示到WPF的Window上的一个DataGrid上。具体代码如下。写完了上面的代码之后,按F5,程序运行了起来,点“刷新”。你会看到如下结果。如下图的结果。DataGrid自动生成了...

2019-08-18 08:50:40 688

原创 WPF后台逻辑代码编写

在后台用Entity Framework 6.1的Code First方式获取数据库中的数据。同时,在“刷新”按钮的方法中进行数据绑定。操作步骤如下:在“刷新”按钮上使用鼠标右键,单击,会弹出“属性”窗口。如下图。在“属性”窗口中点击右上角的闪电图标按钮,会出现事件窗口。在Click事件的文本框中进行双击,就会把按钮的Click事件添加到后台代码中。如下图。3)具体代码如下:对象实...

2019-08-08 10:02:30 1038

原创 WPF——绑定模式

通过上一文章中的示例,学习了简单的绑定方式。在这里的示例,要学习一下绑定的模式,和模式的使用效果。首先,我们来做一个简单示例,这个示例是根据ListBox中的选中项,去改变TextBlock的背景色。将 TextBlock 的背景色绑定到在 ListBox 中选择的颜色。在下面的代码中针对TextBlock的 Background 属性使用绑定语法绑定从 ListBox 中选择的值。代码如下。...

2019-08-08 09:58:02 140

原创 正则——特殊元字符

现在我们来详细说明一下正则表达式中的特殊元字符到底能完成哪些复杂的匹配功能。1.单个字符匹配说明: 所有的特殊字符在[ ]内都将失去其原有的特殊含义:有些特殊字符在[ ]中被赋予新的特殊含义,如 ‘^‘出现在[ ]中的开始位置表示取反,它出现在[]中的其他位置表示其本身(变成了一个普通字符);有些特殊字符则变为普通字符,如 ‘.’, ‘*’, ‘+’, ‘?’, ‘$’有的普通字符变为...

2019-07-29 09:09:34 176

原创 SQL—Full Join(全连接)

SQL FULL JOIN结合的左,右外连接的结果。连接表将包含的所有记录来自两个表,并使用NULL值作为两侧缺失匹配结果语法FULL JOIN的基本语法如下:在这里,给定的条件可能是根据您的需要给定任意的表达式。例子:考虑下面的两个表中,(a)CUSTOMERS表如下:(b)另一个ORDERS 表如下:现在,让我们使用FULL JOIN在这两个表如下:这将产生以下结果:...

2019-07-29 09:03:25 61329 6

原创 WPF基础—XML数据绑定

XML数据绑定。XmlDataProvider 用来绑定 XML 数据,该XML数据可以是嵌入.Xmal文件的 XmlDataProvider 标记中,也可以是外部位置引用的文件中。当然嵌入式 XML 内容必须置于 XmlDataProvider 内部的 <x:XData> 标记中,而且不容易修改,所以建议使用XML数据文件形式。对于 XmlDataProvider 必须命名一个 x...

2019-07-18 09:34:45 918 1

原创 常用正则表达式实例

通常写一个合适的正则表达式是比较耗费时间的,因此我们可以保留一些常用的正则表达式以备不时之需。但是需要说明的是,没有任何一个人敢说自己写的正则表达式是百分之百严谨的,而且也没有百分之百相同的匹配需求,因此这里只是列举我自己写的几个常用的正则表达式,欢迎大家留言讨论。说明: 下面只是一些简单的匹配规则,实际情况中需要我们根据具体情况再这些正则表达式的首部和尾部加上相应的边界符,如:^, $, \A...

2019-07-16 21:18:53 145

原创 C#—泛型类型参数

在泛型类型或泛型方法的定义中,类型参数是一个占位符(placeholder),通常为一个大写字母,如T。在客户代码声明、实例化该类型的变量时,把T替换为客户代码所指定的数据类型。泛型类,如泛型概述中给出的MyList类,不能用作as-is,原因在于它不是一个真正的类型,而更像是一个类型的蓝图。要使用MyList,客户代码必须在尖括号内指定一个类型参数,来声明并实例化一个已构造类型(construc...

2019-07-03 09:52:35 7246

原创 WPF—WrapPanel布局

WrapPanel布局面板将各个控件从左至右按照行或列的顺序罗列,当长度或高度不够是就会自动调整进行换行,后续排序按照从上至下或从右至左的顺序进行。Orientation——根据内容自动换行。当 Horizontal选项看上去类似于Windows资源管理器的缩略图视图:元素是从左向右排列的,然后自上至下自动换行。Vertical 选项看上去类似于Windows资源管理器的列表视图:元素是从上向下...

2019-07-01 11:09:18 495

原创 WPF样式详解

WPF资源系统可以用来保存一些公有对象和样式,从而实现重用这些对象和样式的作用。而WPF样式是重用元素的格式的重要手段,可以理解样式就如CSS一样,尽管我们可以在每个控件中定义格式,但是如果多个控件都应用了多个格式的时候,我们就可以把这些格式封装成格式,然后在资源中定义这个格式,之前如果用到这个格式就可以直接使用这个样式,从而达到重用格式的手段。从中可以发现,WPF资源和WPF样式是相关的,我们经...

2019-06-28 11:00:44 1116

原创 C#委托与回调函数

一、委托委托是什么呢?这个名字的意思已经赋予了我们想象的空间,你是编程的,你现在正在写一个ASP.NET网页,而JS是你不熟悉的,于是你委托你的一位同事来帮助你完成JS部分。这就是委托,把你所不能做的事情交给其他人去做。而怎么知道是哪个人去做呢?当然是要知道名字!而为了区别名字一样的不同人,因此,需要描述一个特征。在C#中,委托的作用是这样描述的:委托就像一个函数的指针,在程序运行时可以使用它...

2019-06-28 10:57:51 1669

原创 C# 常量

所谓常量,就是在程序的运行过程中其值不能被改变的量。常量的类型也可以是任何一种C#的数据类型。常量的定义格式为:  const 常量数据类型 常量名(标识符)=常量值;其中,const关键字表示声明一个常量,“常量名”就是标识符,用于标识该常量。常量名要有代表意义,不能过于简洁或复杂。常量和变量的声明都要使用标识符,其命名规则如下:  .标识符必须以字母或者@符号开始  .标识符只能由字母...

2019-06-18 09:22:10 4047

原创 SQL数据库——order by 语句

ORDER BY 语句用于对结果集进行排序。ORDER BY 语句ORDER BY 语句用于根据指定的列对结果集进行排序。ORDER BY 语句默认按照升序对记录进行排序。如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。原始的表 (用在例子中的):首先,order by是用来写在where之后,给多个字段来排序的一个DQL查询语句。其次,order by写法:1. ...

2019-06-18 08:58:06 49444 2

原创 wpf--布局-Grid

Grid顾名思义就是“网格”,它的子控件被放在一个一个实现定义好的小格子里面,整齐配列。 Grid和其他各个Panel比较起来,功能最多也最为复杂。要使用Grid,首先要向RowDefinitions和ColumnDefinitions属性中添加一定数量的RowDefinitions和 ColumnDefinitions元素,从而定义行数和列数。而放置在Grid面板中的控件元素都必须显示采用附加属...

2019-06-09 17:05:25 250

原创 Wpf--布局介绍—Canvas

从这篇文章开始是对WPF中的界面如何布局做一个较简单的介绍,大家都知道:UI是做好一个软件很重要的因素,如果没有一个漂亮的UI,功能做的再好也无法吸引很多用户使用,而且没有漂亮的界面,那么普通用户会感觉这个软件没有多少使用价值。一. 总体介绍WPF的布局控件都在System.Windows.Controls.Panel这个基类下面,使用 WPF提供的各种控件在WPF应用程序中界面进行布局,同时...

2019-06-09 17:00:48 288

原创 WPF基础——依赖属性

大家都知道WPF带来了很多新的特性,其中一个就是引入了一种新的属性机制——依赖属性。依赖属性出现的目的是用来实现WPF中的样式、自动绑定及实现动画等特性。依赖属性的出现是WPF这种特殊的呈现原理派生出来的,与.NET普通属性不同的是,依赖属性的值是依靠多个提供程序来判断的,并且其具有内建的传递变更通知的能力。依赖属性基本应用在了WPF的所有需要设置属性的元素。依赖属性根据多个提供对象来决定它的值...

2019-06-09 16:53:32 9476 3

原创 Java运算符

java中的运算符包括:算术运算符、赋值运算符、比较运算符、逻辑运算符、条件运算符Java 语言中的运算符除了具有优先级之外,还有一个结合性的特点。当一个表达式中出现多种运算符时,执行的先后顺序不仅要遵守运算符优先级别的规定,还要受运算符结合性的约束,以便确定是自左向右进行运算还是自右向左进行运算Java 中常用的算术运算符:其中,++ 和 – 既可以出现在操作数的左边,也可以出现在右边,...

2019-05-28 15:12:01 85

原创 C# 泛型类

泛型类实例化的理论C#泛型类在编译时,先生成中间的代码IL,通常类型T只是一个占位符。在实例化类时,根据用户指定的数据类型代替T并由即时编译器(JIT)生成本地代码,这个本地代码中已经使用了实际的数据类型,等同于用实际类型写的类,所以不同的封闭类的本地代码是不一样的。按照这个原理,我们可以这样认为:泛型类的不同的封闭类是分割不同的数据类型。例:Stack和Stack是两个完全没有任何关系的类...

2019-05-28 08:02:42 622

原创 Java Io流学习总结

一、什么是流?流就是字节序列的抽象概念,能被连续读取数据的数据源和能被连续写入数据的接收端就是流,通过流我们可以自由地控制文件、内存、Io设备等数据的流向。而IO流就是用于处理设备上的数据,如:硬盘、内存、键盘录入等IO流根据处理类型的不同可分为字节流,根据流向的不同可分为输入流和输出流。二、字节流和字符流的区别:字符流,因为文件编码的不同,就有了对字符流进行高效操作的字符流对象,它的原...

2019-05-17 07:49:49 91

原创 Java集合 (list,set,map)

List,Set,Map是集合体系最主要的三个接口.list (有序、可重复)List里存放的对象是有序的,同时也是重复的,List关注的是索引,拥有一系列和索引相关的方法,查询速度快。因为往list集合里插入或删除数据时,会伴随后面数据的移动,所有插入删除数据速度慢ArrayList:ArrayList是基于数组的,在初始化ArrayList时,会构建数组(Object[] elemen...

2019-05-16 21:32:28 78

原创 Java二维数组

在 Java 中二维数组被看作数组的数组,即二维数组为一个特殊的一维数组,其每个元素又是一个一维数组。Java 并不直接支持二维数组,但是允许定义数组元素是一维数组的一维数组,以达到同样的效果。声明二维数组的语法如下:type array[][];type[][] array;其中,type 表示二维数组的类型,array 表示数组名称,第一个中括号表示行,第二个中括号表示列。下面分别声明...

2019-05-08 19:39:04 10635

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除