粉丝2201获赞1.5万

熟悉 w p f 应用项目模板,首先打开 visual studio 开发环境,选择 w p f 应用程序,点击下一步, 填写好项目的基础信息, 点击创建,开始一个新的 w p f 项目。 首页引入眼帘的是一个 w p f 应用窗体文件,文件的上面是窗体的预览效果,下面是窗体的编辑内容。 左侧是工具栏,这里面是 w p f 所有的 u i 工具组件和第三方的 u i 组件, 右侧是项目的文件列表。那么如何设置程序的启动窗体呢?双击 app, 点 zemo 文件,里面有一个配置 startup bury, 这个就是设置窗体启动的。 我们新建一个窗体来试一试。选择项目文件,右键选择添加选择窗体。 新建一个 window, 一点 zemo 窗体,将窗体的标题修改一下, 点击运行按钮测试一下, 再将其用窗体修改为 main window, 点 cm 运行一下。 那么如何让窗体启动的时候居中呢? 修改 w p f 中窗体的属性, window startup location 只等于 center spring 即可。 再来说一下 w p f 应用程序的生命周期,打开 app, 点 semo, 点 c s, 将 app 的构造函数接出来, 这个就是管理 wpf 应用程序生命周期的文件。将程序开始的事件接出来, 这里可以初始化一些内容,或者验证程序文件等操作。 再将程序异常事件接出来, 这里是程序运行期间,如果出现未处理的异常,记录一下,供程序优化,让程序可以继续运行下去。 这里讲讲怎么快速将事件接出 this, 点事件加等于按 tab 键盘即可。

啊,那这一节呢,我们来讲解一下我们整个的这个客户端以及 api 的一个部署过程。那我们首先从 api 开始啊, api 呢我们可以啊,它是一个外边 api, 我们可以选择性的发布到 windows 或者拎六克斯上面,对吧?那我们检查我们当前这个配置啊,有没有问题? 有时代喇叭当中,如果你是说你看他这里有一个,如果你是开发环境下的情况,他就会启用这个 oppa, 那如果我们是啊正式版的话,他就不会有,所以说我们这个就不要放在这个啊这个判断条件下面,这样他才会启用, 否则我们发布成功之后,你没法去启动这个所爱的这么一个界面。我们在这个啊终结点当中,我们有一个叫 map, 叫十万个,对吧? 我们找一下 啊,然后呢我们检查这个配置完全没有问题之后呢我们再看一下我们这个数据库,对吧?因为我们的数据库在启动的过程当中不会动态创建的,所以说我们要复制到这个输出目录。然后呢我们来发布啊,重新申请一下 啊,没问题的话我们来发布,发布的时候呢,我们可以选择发布到多个平台,比如说啊这上面这个多克容器以及这个文件夹,或者是说 ftp 啊外部服务器的方式。那我们如果你是发布到当前本机的这个 is 上面,我们可以选择文件夹, 然后呢这个是文发布的这个文件地址啊,我们就可以自己选啊,也可以按照默认的我们直接完成, 完成之后呢我们有一些配置,比如说这个关于我们这个发布的一些选项,你是这个依赖依赖框架还是独立的模式,我们 可以选择依赖框架,那你依赖框架的话,你这个当前那个部署的电脑呢,就需要安装对应的这个运行时,那这个同样的是这是一个目标的运行时的选项,我们这里面还有一个文件发布选项,就是发布前删除之前的啊文件,然后这个呢是数据库连接,我们可以勾选这个 配置的话,我们就选这个发布发布版本,然后呢我们直接保存,直接发布。 那发布成功之后呢,我们打开这个文件夹,我们可以看一下啊,这个文件夹里面呢,我看一下能不能点开,直接跑起来, 然后我们打开这个,把这个地址拿过来,看下能不能 logo host 啊,我们可以看到这个 app 能启动,但是呢我们现在是手动打开的,那肯定不行,我们要发布到 is 上面,我们首先关闭掉啊,然后呢我们先检查一下我们的电脑有没有安装 is, 如果你没有的话,你可以在这个启用或关闭 windows 功能里面,这里有。像这个 internet 英方没选设备室里面啊,这里面一些选项你要勾选上啊 啊,你不够选上是没有的,然后你有的话,你可以搜索到这个啊,这么一个功能,你点开之后啊,你可以看到这么一个界面啊,这里面有个网站,我们可以添加网站,这里网站名称我们可以给叫叫麦土豆,对吧?然后物理路径呢,就是我们当前这个路径了 啊,我们当年这个是 d 盘扣的,然后呢有一个麦图度 app, 这里面有一个 api, 然后里面 有个病,找到这个文件夹,对吧?哎?上面这个文件夹我们直接确定,对吧?然后呢我们确保这个传递身份验证是通过的哈,就比如他能够正常访问,对吧?我们可以选择我们当前的电脑的这个密账号密码, 那测试通过之后呢,应该是没有问题了,然后这个端口的话,我们可以自己修改一个端口,叫三三三三,对吧?也可以我们直接确定。 然后呢我们在应用程序起词当中呢,我们找到这个选项啊,他应该是无托管代码,选择这个选项即可。然后呢我们回到这里面,我们直接啊应该是启动了哈,我们直接运行他 我们默认的这个页面呢,他是没有导航到界面的,所以说他会显示找不到这个 logo hose 的界面,那我们这里 里面可以啊,使用这个 swegg indeg, 对吧? swegg 就可以找到,这个就是代表我们整个的项目发发布成功了啊?发布成功之后呢,我由于我们当前电脑是 loc host 啊,端口是三三三三。那我们这个时候呢,我们回到我们的这个客户端当中, 之前呢我们都是启动多个项目,对吧?我们的客户端运行的时候呢,我们要确保这个 api 已运行,所以说我们现在只需要启动这个客户端,因为我们的 api 已经启动了,然后呢我们检查一下我们的配置链接, 回到这里面啊,我们要修改我们的配置链接,把这个端口改成这个三三三三即可,对吧?我们直接启动。 然后呢我们来测试这个 adme 一二三,来登录一下 啊,这个这个温度是更新哈,我们先不管,我们现在已经登录进来了,对吧?我们我们所以说我们说明说我们现在这个 abi 的项目已经发布成功了啊,并且成功布置在我们当前的这个 windows 这个 is 上面,然后如果我们停止的话,你会发现我们客户端根本就登录不了,对吧? 这里肯定会爆错了, 当然这个错误可能会啊,他这里其实不好做了,我们代码没有处理哈这个 logo 雷兆的维纳的这么一个情况, 那如果你错误的话,如果这个洛克闹洛克恩雷兆特维纳的话,我们可以可能也会有一个错误,对吧?我们可以在这个当前的这个服务城当中 去做一下处理, 然后我们来看一下这下面哈,对吧?比如说你这里我们可以用个,其实可以用一个这样来处理,如果你反馈之为 ok 的情况下啊,我就解析你, 然后我们重新来启动一下这个客户单, 我们输入一下爱的面,对吧?一二三,他这个时候是登录不上去的,对吧?所以说他会提示一些错误信息,对吧?他没法去连接到后台,那我们启动一下他, 他就可以了,对吧? 那这一节呢,我们就讲到了如何去啊? 把我们的 api 项目啊发布到我们的这个 windows 的这个 is 上面,那下一节呢,我们就着重的来打包一下我们这个客户端啊,让他和我们去下载第三方的应用程序一模一样。首先呢需要下载一个安装包,安装成功之后呢,我们启动啊即可。 那我们安装的包的过程当中,我们却把这个啊配置的这个服务链接啊他是正确的,要不然你除非你把这个地址改成可配置的,对吧?那我们下一节接着来讲一下这个客户端的一个打包功能。

大家好,我是十年,十年,我们直接进入主题,先看效果,我这有一个 leg, 然后我要把这个内容复制到这里面来,直接可以拖拽过来,然后把这个 leg 的内容直接拖过来也是可以的, 不光这样可以,我还可以把这个贴机的内容拖过来,大家看一下这个幺三三的贴机里面的内容是欢迎关注春天,春天大家新年快乐。然后我直接把它拖拽到这里面来,鼠标下面会出现一个虚线的框,然后当我松开鼠标抖肩,内容就进来了, 不光是这些文本可以拖拽啊,图片也是可以的,你看我把我的图片拖拽到这里面来,刘德华、张国荣 都是可以拖拽过来的。呃,那现在我们直接进入叫什么叫 编程阶段教学吧。然后啊,我们新建一个项目, 单词怎么写的,价格就要主要用到这两个,一个是拖拽丢弃,价格就是把东西鼠标左键选中拖拽过来,然后就要不就是丢下丢到这个框里面,然后我们跟刚刚的一样的形式吧, 用一个 tfbox, 然后再加一个,来吧, 来把我放大一点,然后主要有,就像我刚刚说的,主要有两个事件,然后一个属性属性叫阿拉偶,就是可以丢弃,相当于说可以把东西丢进来这个属性 设备处,然后有一个这个音词,就是帮当你把一个东西拖拽到这个里面的时候,出发的时间,还有一个叫 直接叫脚步,就是当你把东西拖到这里面,松开鼠标左键,他会丢到这个框里面的时候,出发的事件就这两个事件就可以实现,然后我们来实现这两个方法,当他进来的时候,首先我们加一个判断吧, 一点带他点,接他带他 prison 这个方法,然后形式 相当于说我们要判断一下你拖进来的是什么,如果是在 level 里面,你推拖一个其他东西过来,我们就不解析啊,这样子 爆满带他爆满点,首先你得我们先判断他 是个贴纸器吧,如果你拖一段什么,相当于比如说音频之类的肯定就不行了吗?是吧?然后我们就让 b 的 ebacks 等于 这个角和一般剪阔平, 加上这个之后,当你拖拽东西的时候,他首先就会有一个虚型的框,我先然后先演示一下,要不 我把这个拖拽到这里面,你看到这个下面就有一个虚线的矩形框,当然他并没有拷贝过来,因为我还没有实现。当你卷腹之后的事件就是这个事件, 当你把它丢下来之后,当然一样的,为了安全嘛,我们就先也是判断一 下你丢下来的东西的确是我们要的。这个可能是比如说泰克粉,然后我们就可以设一下首先获取到这个空间, 然后就可以设他的考生成等于一点点他点,接着点他, 给他 format, 点 test, 我们试试看效果, 把这个拖拽到这里面来来就复制过来了,但是现在的话你还是无法复制一个文件的,因为我们这里面并没有把这个格式包含进来, 我可以先哎,我们也可以试一下效果,如果我拖出来一个文件进来会怎么样? 并没有什么用,是吧?然后我们加一下如果 爱尔斯衣服一点对他点给他,对他不认得,对他 omen 点发要教会这个,就是说你放的是一个文件, 放的是一个文件的话,那我我不能直接设他这样写,因为你这个文件要打开的,要读取的,所以我们首先获取这个文件的路径, 今天摘他,点椰子,摘茶, 然后他这个返回的要用一个格式转换一下, 把它转成 ore, 然后再 get 他的第一个歪扭就是他的路径了,有了这个路径,那其实我们 level 的 content 就可以等于 system 点 l, 点 fire, 点 read or text, 现在我们再试试看效果, 错,拽进来,哎,这样就可以读取到这个了。嗯,文本的就是这样。那图片呢?会怎么样呢? 其实他们道理是一个样的,但是我自己试了,我直接拉一个一米九还真不行,我也不知道为什么。然后,呃,我就用了一个格瑞的,在格瑞的里面放了一个一米, 然后给这个英明就起个名字吧,小麦 m 七,然后在这个里面继续用刚刚那个方法就是, 然后他有一个这个音词的事件,然后也有一个 jip 的事件, 然后我们实现一下。当然现在这个他太大了,稍微试一下蛋糕吧, 就是这个正方形得了,把它拖到边上来,免得干涉。 看什么情况, 加个背景色吧,要不然咱看不到了。 然后我们实现一下这两个事件的方法,第一个因此而还是跟刚刚那个一样的,只不过稍微改一下嘛,改成发药就。 然后当他丢下来的时候,我们要解析这个路径,其实好像也是也是一样的, 在这个地方吧,先复制过来,如果他是一个弯腰叫法,然后就获取他的路径,只不过我没有这个了,然后我要读取的是我设一个 bt map, 把这个路径传进来,就是相当于你传的是一个图片的话, 然后买一米几点四二四等于啊,对,这个应该是不能直接等的,因为他这个这个一米几四二四,所以你要把它转换成这个, 转化成把鼻子外部转成一米,就 souls。 有一个方法叫 我这个直接这样写吧,叫 imge me。 引用一下,在这个 windows 樱桃 op 什么东西,然后有一个叫 creatbeat map, 然后这里面的参数,第一个是要传一个 beat map 的指针,这个直接用 bt map 点啊, bmp 啊, 就是我一直的这个 dat hbgm 就可以了,然后后面的参数全部填空。这个我不记得以前的视频有没有讲过。第二个指针点 zero, 然后音质三十二点 mt from the options, 就是全部选空吗? 这样的话我再拎他的这个等于一米, 再看一下逻辑啊,当他是第一个文件的时候,我就获取这个文件的录进名,然后获取实际化这一个 bmp, 然后再把它转成一米七四到四,然后再复制给我的这一个页面去,然后回来 来试试看效果,哎,这样就可以了, 是不是比较简单?嗯,这一节课就讲到这里吧,谢谢观看。

啊,第一节呢,我们来介绍一下这个框架的一些内容,首先我们会介绍一下什么是 present 以及他的项目地址,以及他与其他框架的一些区别啊,包括我们本系列课程的一些知识章节啊所要讲的一些内容。然后首先我们来介绍一下他是什么 啊?它是一个可以用于在多个平台啊,构建松藕和可维护和可测试的一个 xml 应用程序框架啊,它与其他的一个 mvvm 框架类似哈。 然后呢,他是由最初是由微软的一个相关的一个团队啊构建的一个项目,目前呢他是一个在 属于当代的基金会下面的一个开源项目啊,并且呢经过财富一百强等公司一个多年实践的一个啊经验啊,那目前的版本呢是八八点零,然后呢这里呢是他 的一个 github 的一个地址,首先我们可以打开它,然后呢它在 github 上面呢?呃,拥有很多的一个关注量啊,大概有四点二 k。 然后呢这是它的一个项目地址,目前的版本呢是八点零点一九零九, 这个是它的 github 地址。然后我们使用的话呢,我们一般是用在 nukit 上面搜索它啊,这个是它的一个 nukit 包的一个地址啊,大家可以通过这个啊来安装它。 然后呢我们再来介绍一下啊,他与其他的框架有什么区别啊?啊,就像我们使用过一些其他的一些框架,包括我的之前的视频当中讲过的一些其他的 m v v m 框架啊,除了啊,他们都实现了一些通知绑定啊,绑啊, command 啊,包括这个消息聚合器啊等一些操作啊,只是说 啊不同的框架之间呢,他们除了声明上的差异啊,还有特定功能上的不同,例如呢,我们啊要在啊所讲的这个 proside 八点零当中哈 就有很多新的功能啊,包括这个 vivo 跟 vivo model 啊,自动建立这个 data contact 的一个关系啊,同时呢哈支持多种容器的依赖注入啊,包括它其强大的一个模块化的一个功能啊,以及这个导航功能啊, 他都能够将我们这个应用程序啊变得更加的灵活自如啊,这个就是我们这个 prosm 八点零当中的一些强大的功能。那么呢这个我们在 我们接下来的知识章节当中呢,详细给大家讲到啊,那么我们本系列课程呢,知识章节呢,主要会包含以下六个啊,大块啊,包括他的一个什么是区域啊,什么是模块化,以及怎么实现模块化, 包括它的一些啊, m v v m 相关的内容啊,然后呢,这是一个事件聚合器,还有就是导航以及对话服务啊,那么我们这个就是我们本系列的一个知识章节,那么我们下一间下一章呢,就给大家来讲解一下什么是区域啊。

啊,我们接着上一张呢,我们来看一下我们上一次的完成的状态,对吧?首先呢我们打开一个代办事项,对吧?啊,我们可能稍等片刻呢,就会这个数据就会加载出来,对吧?但是在加载数据的整个过程当中呢,我 我们希望我们的应用程序啊能够有一个窗口,他去等待我们数据加载完成,这个时候呢我们就可以用到这个耳边震当中的这个啊,是是件聚合器啊,那这个时候呢我们来改一下我们的代码,那我们首先哈我们的思路呢是在我们的首页的窗口当中哈,这个带了个 boss 的当中 啊,去给他显示一个呆了个 content, 对吧?那我们就要写一个这样的一个啊事件这个句和啊一个消息,那首先呢我们创建一个文件夹啊,叫艾文特,然后 然后呢我们定一个这个,比如说展开这个等待窗口的这么一个消息,我们就叫 update 楼顶有问题。然后呢我们定一个定一个实体类 ah class update 啊,不对的叫 猫的, 然后里面呢有一个波尔类型的这么一个制断,对吧?他表示我们这个窗口是不是打开状态,对吧? 啊?接下来呢我们就写一个叫趴啊趴吧, 这个呢就是葡萄诊当中的这个啊啊事件的这个类 啊啊不对的猫斗,然后呢这样我们就写好了,对吧?写好了这一个类之后呢,我们现在就可以在我们的这个未有猫斗当中去加这么一个东西了啊,首先我们可以追到我们这个啊,这个土都未有猫斗呢,它是继承这个帮它的喂食,对吧? 那我们呢肯,我们想修改一下这个类,这个让这个我们的鸡肋呢,支持这个去啊,比如说设置这个窗口啊,等待,对吧?那我们就可以,其实可以写一个类,对,鸡类叫啊 nav 未有猫斗,这里面呢具备这个鸡肋的导航的这个啊功能,比如说我们要 i never get, 然后呢我们需要去实现他,对吧?我们实现他的接口,对吧?这个呢就代表我们是否重用以前的窗口,那这个呢?我们是默认是处,对吧? 如果你有一些未摸头当中,你想要去修改这个状态,我们就设置为这个虚方法,对吧?那同样的我们其他的话,我们也可以设置为这个啊,虚的你可以去实现,对吧?你也可以不实现, 当然这个是 word, 对吧?那洗完这个之后呢?我们希望积累是具备这么一个功能,我们就首先呢就要创建这个当前的这个容器,对吧? 我们把这个葡萄枕当中的这个容器, 我们放在我们的积累当中创业那么一个字段,对吧?这个时候我们就要用到我们的这个啊,四键就要去了,哎哎哎哎哎,对,对, 然后呢我们声明他,然后呢再去从容器当中啊拿到这个实力 i event agreed, 那通过他呢?我们希望去调用一个方法,对吧?这个方法去控制我们的这个 man view model, 去展开这个带 logo content, 比如说这里其实有一个呆了个 ctrl 的啊,可以追到,我们要设置这个内容,对吧?设置为一个那个转圈圈的这个内容就可以了嘛?所以说 我们这个啊,这里面呢我们要写一个扩展方法啊,这个扩展方法呢,它是用于啊在我们的这个当前的这个窗口当中去展开的,比如说我们就要带了个一个三星 e x t e s i s, 对吧? 我们让他去支持这个弹窗,然后呢这里面呢我们写一个这样的一个啊扩展方法, 我们写一个叫 update, 然后呢是 i event great, 然后呢有一个模型叫 啊不对的猫的, 我们这个就叫 model, 然后呢里面具体的我们就是可以通过这个啊,阿格瑞特呢,然后呢获取这个 啊 update road, 然后呢我们去推送这个消息,对吧?把这个猫都传进去,那同样的我们既然有发消息的话,我们肯定有注册消息,对吧?注册消息的话呢啊,我们可以用 register, 然后呢这里面呢我们就是去啊杀人的,对吧?然后呢当然我们这个要用个委托了,对吧? 委托来这个呢,我们就叫 x 型,把这个 x 型传进来,那我们加个注视,对吧?这个叫 啊推送啊,这个是等待消息, 注册等待消息,对吧? 注册了之后呢?我们这个是给谁注册啊?就是给这个 me will 当中注册嘛,对吧?那我们走到这个 me view 的代码当中,我们只需要去把当前这个啊,拿到这个 i e v e n t apparator, 然后呢我们去订阅他, 在这里面我们去啊,比如说这个, 我们找到这个对象哈这个名字, 然后呢我们我们通过掉一个委托, 他老会给我提示这个, 对吧?我们注册一下这个扩展方法就可以了嘛,对吧?然后呢这里面呢我们去怎么做呢?我们把我们当前这个面啊, vivo 当中的这个啊,带了个 hose 的这个这个名字啊,拿过来 我们可以通过他啊,我们要给他取个名字先嘛,对吧?我们在这个 man vieon man viel 当中,我们给他取个名字啊,叫带绕个,然后呢通过这通过他, 我们去啊推送这个消息。我们要首先我们得拍设置好这个一字 open, 等于 ar g 点一字 open。 然后呢如果你是,比如说你是这个 一直 open 的话是处的话,我就把当前这个呆了个 host, 他的这个呆了个 contine 的,我设置为一个弹窗的这么一个等待的窗口,对吧?我们这里先设置为 no, 那我们可以新建这么一个这个等待的窗口,对吧?添加一个用户空间,然后呢我们给他取个名字 啊,表示这个是正在加载数据,对吧?那里面呢,我们就可以放一个 stag pan, 然后呢我们放一个一个等待的一个 加载,给他设置一个大小吧,宽高我们设置为这个四十。然后呢我们给他设置为这个一直在转圈,对吧? 你可以看到这个东西是一直在等待的,那呢?那么现在其实这个样子哈,他是需要一个样式,这样会好看一点,我们给他设置为矩形,对吧?这个是用 md 当中的这个 这个样式,对吧?那我们现在就设置好了,设置好了之后呢,我们只需要去把这个窗口,比如说我们,我们把这个窗口调小一点嘛, 然后呢让整个的这个东西去有一些编剧吧,这个的话我们就设置为这个其实没用啊,这只是设计界面的窗口。那有了这个之后呢,我们把这个对象拿过来放到我们这个 位友当中,我们直接扭这么一个对象,那这里啊叫注注册啊,等等待消息窗口, 那我们有一个地方要发送,发送的话主要是在我们 vivo model 当中,所以说也就是在这个啊, no gait 型 vivo model 当中,这里面呢我们定一个方法,这个方法呢主要用于我们去发送消息,对吧?那这个时候呢,我们就可以在这里面声明一个 啊,一个公开类型的方法,叫阿不对的 logo 顶,然后呢我们写一个布偶类型的,对吧?你是不是要打开这个窗口啊?然后呢我们再直接就 用用这个阿格瑞特,然后呢阿布勒的 logo, 这是一个扩展方法啊, 一只我们直接传一个什么类型, 引一下命运空间, 你是 open, 对吧? 那写完之后哈,我们这个方法它主要就是用来展开这个窗口嘛,那我们我们在业务方法当中,比如说这个土豆,为了磨豆当中啊,那我们在这里面我们还得继承一个类哈叫, 然后加个逗号,那我们改变,我们这个土都没有 model model, 它的一个继承类啊,我们修改掉, 这个时候呢,我们要还要去把我们当前这个啊容器给传过去,所以说我们这里面要要多加一点东西,把我们当前这个传过去 啊,这样就 ok 了。然后然后呢我们在这个我们的这个加载数据的这里,对吧?这里我们在这里不是叫一个库瑞的铺 普度历史的嘛,这个是在构造函数当中去执行的,那显显,然后我们作为这个啊,在 prad 当中我们去导航这个的话,我们一般这种操作不会放在这个构造函数当中,所以说我们这里注视掉,那这里呢我们改个名字叫啊 get 啊 data list, 我们叫 get data 的肾,对吧?然后呢我们要重写那个 导航这个加载数据的这个方法,对吧?我们在这里面去调用它就可以了, 那在这个这个方法中调用哈,我们这里面就可以声明一个叫啊不对的啊 loding, 比如说我首先啊就要打开这个,打开这个等待窗口,对吧?那我加载数据完成了之后呢?我是不是要去结束他,对吧?这样子呢我们就做好了一个这个叫获取数据,对吧? 数据,那这个时候呢,我们再来看一下我们这个效果,就是说我们打开这个模块之后,他能不能有一个这么的窗口展开, 对吧?然后我们主要来看一下这个效果是怎么样的? 我们启动一下这个服务, 我们打开这个应用程序哈,我们的 api 应该也是启动了,然后呢我们点开这个代办事项,你会发现这里是不是有个窗口在等待了,对吧? 等待呢?它是等待这个数据加载的过程,所以说一旦数据我加载完成之后呢,我们这个窗口消失,所以说这就是我们这一节要讲到的这个啊,我们在这个处理数据的过程当中啊,我们可以去给 ui 上面有一些表现,对吧?比如说等待,这样呢就给我们用户啊使用软件会有一个比较良好的一个体验。那下一节呢我们继续来优化一些细节。

在日常开发中,如果想要实现类似的显示效果,就可以考虑使用 wpf 中的 list new 组建。今天给大家分享一下这个空间的简单使用方式。第一步,建立一个 wpf 应用程序项目。 第二步,为了实现数据绑定,先写一个简单的学生内,包含三个属性,姓名、年龄、城市。 第三步,写前台 x a m l 布局窗体和 list view。 第四步,将窗体的 lode 的事件实现。 第五步,编写一个简单的数据创建方, 方法用来循环创建学生类集合。 最后将学生内的集合绑定给 list view 组建,用到 list view 中 item source 属性。第六步,将数据方法评价到 road 事件中 运行,看看效果。 我们看到已经有数据了,但是不是我们创建的数据。 返回前台,将要显示的数据绑定给 list view, 这里用的是 list view 中的 display member bandi 数据,将要显示的数据属性名称绑定到该属性上即可。 那么如何获得选择的行数据呢?把 this view 的 select mode 设置成单选, 同时将 selection change 的事件接出来,在该事件中或 select item, 即表示选择的行数据。


啊,大家好,今天我们来解答一下用 face 的萌去登窗体窗体之间切换的这个问题。 那首先呢,我们就打开我们的这个工程啊,这工程呢是我们是我提前已经做好的,就说初次化的时候呢,我们登录就要有个登录窗题,对吧?那 登录完以后呢,他就要跑到我们的主窗体里面来啊,就是这两个。 好,正常情况下呢,我们的 fres, 我们的这个项目呢,建好以后呢,他的大概的样子呢,就是这个样子,我们回到 app 下面来,那就这样的,我们只需要现在呢,我们 需要搞懂几个要点,首先呢程序的主入口就是跑起来以后呢,他会第一个会进入哪一个窗体下面,那重要点呢,就在这个地方,他这里呢是代表什么?程序初始化创建的时候呢?主程序呢就是我们的闷闷头,对吧? 那我们这个时候呢,我们改成我们的烙饼, 那他呢首先呢就会进到我们 logo 的这个床底这边来,好,我们启动看一下, 好, ok 啊,没问题,对吧?我们再回到这个 app 下面这边,那我们呢来 进一步的去说明下。这样这样做呢,就是有一个问题啊,就是说 我们的程序组入口呢,定义了我们的 logo window, 那怎样跳到我们的 logo 下面这边来了? 我们一般啊,我们的写法呢,可能就会直接溜一个,对吧?溜一个这个窗体啊,其实我们不需要这样, 那等一下我们去去完成一下这个操作,就说用我们的 please 呢去完成这个窗体与窗体之间的切换 好。然后呢,接下来我们再讲一下,就是以往的一些做法,就说有一个实实在在的一个登录窗体过渡到我们的门温德这边来呀,他是怎么做的呢?其实他那边那就是常见的做法,就是说 在我们的程序啊,就是从这个时候呢,我们应该是重写一下我们的程序处置化这个方法,在这里他这个地方呢就开始要以弹窗的形式,就说我们的 登陆窗体呢,是以弹窗的形式进行弹的,那在这个地方就会产生了一个问题啊,就是说 我们的业务代码会写在 app 下面,那这肯定是不是我们想要看到的一个效果啊?就是最理想化的一种场景是什么?就说我们的 业务逻辑啊,应该在我们的不用摸的下面,对吧?那我们呢今天呢就把心把它干掉,我们不要这个东西, 这个不是我们想要的,也不是我们今天学习的这个效果。我们还是回到这里来, 我们首我们首先呢每个窗体呢,我们登录窗体呢有个登录按钮,那这个登录按钮出发的一个命令呢,就是对我们的业务逻辑代码,对吧?里面写的就业务逻辑代码。那怎样让我们的这个窗体进行切换呢? 其实我们很容易啊,我们在这里呢,我们因为我们注入好,就是我们拿到我们的一个 lc, 然后呢直接 直接拿到,然后他,他让他自己去抓啊, 抓我们的什么?我们的捞饼,应该是捞抓起我们的闷 window, 好, 这个时候呢,你看他返回回来的是一个窗皮,对吧?我们回到这 app 下面的,我们的写法跟他是完全是一样的,他这里其实就是帮我们实名一个窗体程序啊, 然后我们回到我们这个 oppo 的这边来啊,然后呢我们 给个名字啊, 好,这个时候呢,我们应该什么?我们点击登录以后呢,我们应该关掉啊,关掉我们的这个 捞点奋斗。这个时候呢,我们首先呢我们操作呢,其实完全和我们的一个我们的六创六,一个创铁的写法是一模一样的,我们直接点绣出来, 这个时候呢,我们就很容易了,对吧?我们应该是再把我们当前的这个主程序关掉啊,就是我们的 lowing window, 那怎么关掉呢? 我们应该这样做,我们应该是拿到我们当前这个补程序啊, 好,这个主程序呢,其实他对应的就是我们的 logo 温度,这个时候呢,我们也要用一个存起来变量 名字呢,这应该是属于主程序啊,我们名字还是要取换一下,这个改什么 window, ok, 移一下位置好。然后呢我们应该这个时候呢,我们在干嘛?我们就很容易呀, 就直接,直接,就直接可漏,直接,你看就这几句代码很容易啊,这样就可以了,我们启动看一下是不是我们想要的效果。 好,我们启动了,点击登录, ok 啊,你看回到我们的这个我们的主程序这边来,对吧?那这样呢好处啊,就是我们的业务代码 就直接跑到了我们的 vivo 的这边来啊,那我们的这个代码层次呢,就更加的清晰一点,就不会第一时间就可能会想到啊, 业务代码可能会在我们的 app 下面啊,那好处就这样的,那如果呢要干嘛要退回到我们的注册界面呢?其实这也很容易啊, 我改 成了 logging 啊, ogi, 恩温的,哦,对了,这个时候呢,我们一定要还要还要再再还缺一句话,这里要加一个什么呢? 我们要将这个最大主程序的权限呢?应该要交给什么?要交给我们的闷温度。为什么要这样抓?你要想一下 程序说实话的时候,我们程序呢,第一个展现出来的这个最大权限的这个创品就是我们的 logo, 那我们跳转到我们的 money 的下面呢,我们的应该最大权限应该交给什么?应该交给我们的 闷温的,对吧?应该这样,那跑到我们的闷温的这边来了,其实 用的道理啊,我们登录窗体关闭以后呢,我们最大权限应该交给什么? logo? window, 对吧? 那这样呢,就一套组合拳打完下来,打完了以后呢,就看就是我们正常的窗体与窗体之间的切换,我们看一下点击登录,对吧?然后我们再点击住校, ok 啊,你看完成, ok 啊,我们点击关闭啊。


呃,今天这个视频呢,我们来给大家介绍一个 wp f 版本的一个 app 框架,这个是由我个人在啊最近的两个月完成的一个啊, wpf 版本的一个 app 框架啊啊,今天这个视频呢,主要来给大家介绍这个框架啊,包含那些功能。 然后呢这个是目前这个是登录页啊,我们可以进行切换语言以及选择租户,包括这个修改密码,发送激活邮件等等啊,这里可以切换语言,那我们就用中文来进行登录,那首先我们直接登录到了这个系统当中, 那登录完成之后呢,我们就可以看到这个系统首页了,系统首页呢包含了一个工作台啊,就是负责统计一些关键数据,像一些啊新的这个充值金额啊,包括一些住户,还有一些其他的一些收入啊,像版本的一些使用情况啊啊,这个可以 体现在这里,当然也是支持自定义的。然后呢左侧的菜单就是我们这个框架本身包含的所有功能啊,像这个组织机构角色用户啊,都是我们在博客当中介绍的啊,以及下面有一些租户版本语言都是啊有的。然后呢除了除此之外呢, 我们这套框架呢还是计算了一个 ui 啊,整体的 ui 是全新啊设计的,然后呢啊使用的是三个优选。然后呢这里面我们可以切换多种主题,以及这个啊,深色和浅色主题,我们这里可以进行切换, 然后呢也可以切换不同的主题啊,这个就是主题色,然后呢我们也可以切换成深色,然后呢我们再切换回来,对吧?这个是我们默认的这个主题,然后呢我们再给大家介绍一下左侧的这个一些功能啊,方便大家观看这个框架啊有哪些功能。然后这里呢会有一些演示的 ui 组件。然后我们从第一个开始啊,这个是组织机构,这里面呢我们可以添加一些组织,像这个组织部门,比如说这个 北京,对吧?我们随便输入一个哈,不用太纠结。这边输入了组织之后呢,我们这边啊右侧呢就可以添加给他添加成员了,添加成员的话我们随便选几个啊啊,就可以添加,我们也可以删除 这个,是啊组织机构,然后呢也可以添加角色啊,然后角色里面我们也啊可以添加一些角色,想还可以修改他,对吧?修改角色以及他这个拥有的一些权限都在这里都可以去修改。 然后呢我们同样的这里面可以进行权限来筛选,这个角色我们可以输入之后就可以筛选,对吧?我们也可以什么都不选,就可以查出啊对应的角色出来。 然后我们再看一下用户啊,用户呢里面呢我们就可以添加用户了,添加用户呢一般都是一些用户一些关键信息,包括他属于哪个角色以及属于哪个哪个组织,这里面呢我们也可以进行这个账号进行这个啊,修改他的权限以及这个解锁,包括锁定他啊这个账号,包括删除这个用户。 那审计日制的话,就是我们整个系统操作的过程当中产生的一些日制记录啊,他会记录我们这个访问浏览器这个 ip 地址,以及请求哪个服务,是吧?是谁请求的?这里面我们还可以点击查看详情一些啊传递的一些参数。 然后呢这里面我们也是高级过滤啊,可以查看这个呃日制的一些状态,比如说是出错日制啊,还是一些成功的日制,我们都是可以过滤的,这里我们可以看到啊,这里面错误的情况下,他会有一些这个具体的一些错误性 信息,包括他提交的一些参数,这里面我们可以观看。然后呢更改日制的话,就是我们系统范围内的一些像对一些数据更改有要求的一些啊,服务的话我们会记录在这里面啊,这里面会有。 然后动态属性的话,就有点像我们类似字典的意思了,这里面我们也可以维护这个动态属性的一些参数,比如说我们这里 添加这些参数,然后我们保存,这也可以选择性的删除它,我们可以关闭啊,动态实体属性呢,也是一样的啊,可以在里面去添加一些属性啊,就是我们刚才添加的那些啊,前面那个动态属性我们可以保存到这里面。 租户的话呢,就是啊,我们可以给这个系统添加不同的这个代理商的意思啊,我们可以给他指定这个名称,以及他的这个使用的四个数据库,包括这个邮箱地址,还有他是属于哪 版本啊?包括他的账号密码,我们都可以去设置,这里面可以进行筛选啊,比如说这个租户的一个创新日期, 我们可以查询,对吧?也可以取消日期查询,对吧?我们也可以进行日期过滤,还可以进行版本过滤 啊,这里面就是一个版本了,版本的话我们同样的可以给这个系统当中添加不同的版本,没什么版本的话,我们可以给他设置一些功能,比如说这个版本是收费还是付费啊?免费还是付费啊?包括他每天的价格以及每周的价格,包括以什么每每年以及每月的价格,对吧? 啊?还包含一些更加详细的参数,比如说你是否是试用期短?试用期试用几天?那试用期之后呢?我应该怎么办,对吧?如果你订阅期到了之后呢?我应该分配到另外一个版本还是怎么样?以及这个版本呢?它具备哪些功能?我们在下面都可以选啊,这个是我们创建 版本的这么一个界面啊,我们也可以针对这个版本的去进行删除。然后呢语言列表就是我们涉及到说的这个多语言啊,多语言的话就是我们这个系统支持多个语言进行切换, 然后呢这里面我们就是需要去维护这个多语言的所有的这个信息字典,对吧?比如说我这个工作台啊,他应该显示是什么首首页也可以,对吧?我们可以在这里面修改 啊,这个里面对呢就是中文到中文里面的所有的关键字,是不是他的对那个翻译,比如说我们这个主页,我们可以给他改掉,对吧?或者说工作台 哇,这里面我们也可以给他改掉,比如说改成这个首页,对吧?我们也可以改完,改完了之后呢,我们下一次登录的话,基本上就是按照这个首页啊来进行操作的,然后设置的话呢,这里面就包含了整个系统当中像租户啊,一个一些设置 啊,以及他的一些版本,默认的一些版本,包括用户管理,比如说一些注册账号的一些限制,包括设置密码的一些限制啊,我们这里面都有,对吧?可以看到,比如我这个锁定,对吧? 还有这个安全的安全就是他的密码的一些设置啊,像用户登录失败之后啊,锁定他的账户,这里面的设置包括这个双两两不认证的登录啊,这里也有设置啊,这里有很多啊, 基本上是 app 带的。然后呢这里有一个啊邮箱,对吧?比如说是对邮箱一些信息,包括他的一些端口 ip 地址,默认发发送邮箱的地址,对吧?这里我们也可以 啊,进行测试发送邮件,当然这个需要你去后端去配置这个邮件相关的这些东西啊,他默认是没有给你配置的,这个是需要你自己去设置的。然后还有一些像啊发票的一些参数,对吧?我们可以在 里面设置,包括一些其他的一些选项,像这个主题的一些选项啊,就是我们整个框架介绍一些功能啊,这个就是我们 啊整个 wpf 版本的一个 app 框架啊,他包含那些内容啊?然后这个框架本身呢?是啊完整的这个 mv vm 框架进行开发的,然后所有的话,所有的 ui 的话是风格是非常统一的 啊,大家也可以,当然也可以使用不同的意外,这个取决于你们啊,比如说具体的需求,对吧?这个是啊,没有没有没有很大的问题啊,这里我们也可以注销,注销的话我们可以重新登录一下啊,给大家看一下刚才我们修改的这个参数 啊,可以看到我们这个是不是已经变成首页了,对吧?就是我们刚才修改了之后,修改了这个语言,所以它变发生了变化。当然我们这里也可以改回 给大家开回去啊。这里不仅仅是啊可以修改中文呢,就是所有的语言我们都可以修改, 比如说你是中文对这个德语,对吧?我们也可以查出所有的内容, 他对德语想要改成什么内容,我们也可以在这里修改的啊,那个这个呢就是我们介绍的整个这个系统包含的功能。然后呢具体关于这个大家想如何获取这个元旦吗?以及这个 啊更多详细的说明,大家可以看我这个发布的这个博客当中有一个有详细的介绍啊。然后呢今天我们这个视频就到此为止。那后面的话呢,我会陆续的制作这个啊框架本身的一些教程,包括这个 啊开发的一些方法,包括他内部的一些啊,这个逻辑一些文件夹的一些介绍啊,主页会在这里面啊,那我们这个视频我们就到这里。
