首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

豆瓣电台WP7客户端 MVVM重构记录之-总结

从对MVVM的无知到现在对它的半只半解,这个过程还是学到了很多。      MVVM的目的在于使开发分离关注点,写后台逻辑的就写后台,设计UI的就设计UI。...不过要达成这一点并不那么容易,比如导航,比如动画(StoryBoard),这些在ViewModel中都不是那么容易控制的,或者说一旦在VM中控制,那么就破坏了MVVM的初衷。...特别是ViewModel通知View去操作StoryBoard这种情况,虽然从代码层面来看分离了,但是没有分离关注点,ViewModel 还是在关注View。...现在的ViewModel比当初的CodeBehind,没有了业务夹杂UI的操作,真是清爽的了很多。当然CodeBehind并不是一行代码都没有。...CodeBehind本来就是View的一部分,有些在XAML里面不能定义的复制UI操作,完全可以放在这里。另外MVVM Light真的很好用,使你的MVVM开发简单,优雅了不少!

44720
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    怎样把DataGrid存放在ViewState中的无用数据卡掉

    www.cnblogs.com/wangsaokui/article网络 作者:无间道的博客http://www.cnblogs.com/wangsaokui/articles/10031.html 怎样把...DataGrid 存放在 ViewState 中的无用数据(有时候确实如此)卡掉,大家知道,一般而言DataGrid在ViewState中会存放表格中的所有数据,这样会导致ViewState非常大;好比就这个论坛而言...其实在DataGrid中,有一个用来呈现数据的子控件:System.web.ui.webcontrol.DataGridTable,很遗憾,我在MSDN中没找到它的相关说明,但是我在跟踪DataGrid...时,发现它的第一个子控件就是上述的Class(当然这是我在看到这片E文后才知道的,嘿嘿)。...本文由来源 21aspnet,由 javajgs_com 整理编辑,其版权均为 21aspnet 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持。

    51530

    Asp.net中把DataTable或DataGrid导出为Excel

    当前编码的一个项目中有把查询结果(显示在DataGrid)导出为excel的需求,尝试了几种方法,作为技巧拿来和大家分享。...不过这样的实现有两个问题:第一,datagrid中不能包含模板列;第二,只能够导出当前显示在datagrid的数据,无法在分页的情况下导出全部的查询结果。...如果大家分析一下Control.RenderControl的方法,就会发现RenderControl只是把控件的innerHTML导出来,既然如此,完全可以把导出操作放在客户端来处理。...dgData.rows[iRow].cells[iCol].innerText; 53         } 54     } 55 } 下面是调用的例子 1 /** 2 * 导出dgData中0...那么为了把全部数据导入excel中,我们只要把DataTable数据源输出为excel就可以了。

    1.6K10

    在 ViewModel 中让数据验证出错(Validation.HasError)的控件获得焦点

    需求 在 MVVM 中 ViewModel 和 View 之间的交互通常都是靠 Icommand 和 INotifyPropertyChanged,不过有时候还会需要从 MVVM 中控制 View 中的某个元素...,让它获得焦点,例如这样: ?...这个需求在使用 CodeBehind 的场景很容易实现,但 MVVM 模式就有点难,因为 ViewModel 应该不能直接调用 View 上的任何元素的函数。...使用属性控制焦点 了解 FocusManager.FocusedElement 的使用方式以后,我们可以在 ViewModel 中定义一个 bool 类型属性 IsNameHasFocus,当调用 Submit...最后 这篇文章只介绍了简单的解决方案,最后还是需要根据自己的业务需求进行修改或封装。View 和 ViewModel 交互可以是一个很庞大的话题,下次有机会再深入探讨。 7.

    1.5K40

    大规模1.4亿中文知识图谱数据,我把它开源了

    人工智能从感知阶段逐步进入认知智能的过程中,知识图谱技术将为机器提供认知思维能力和关联分析能力,可以应用于机器人问答系统、内容推荐等系统中。...词条,标签,文化 红色食品,描述,红色食品是指食品为红色、橙红色或棕红色的食品。...['词条', '标签', '文化'] ['红色食品', '描述', '红色食品是指食品为红色、橙红色或棕红色的食品。']...思考的过程中,我发现人在思考的时候好像总有一团知识混沌体围绕着自己思考的主题,也就是相关的知识,当时自己就提出了一种叫“关联图谱”的概念,这个图谱可以从一个知识联想到另外一个知识,知识之间可以包含有明确关系的关联关系...在学习与实现的过程中,发现谷歌在 2012 年发布了和自己所想的类似概念叫“知识图谱”,后面也就将有明确关系的关联部分从“关联图谱”中单独拆分出来,以“知识图谱”这个概念为准了。

    7.7K40

    「Android 架构」—— MVVM 详解

    前言 只要你掌握了基础知识,要想构建一个完整的 Android App 并不难,但是想要写出一个可维护的 App 就是另一回事了,这时候就必须让你自己的代码足够健壮,就需要避免把所有业务逻辑代码都放在...不要把业务逻辑比如数据库操作相关的业务放在 Activities 或 Fragments 中。...它的一个优点就是当 Activity 或 Fragment 已经销毁时,它就不会自动向其发送通知了,这样就无需我们自己去管理生命周期了。...它负责从本地数据库或网络中获取数据并操作应用中的数据。 Repository 具有本地存储和服务器之间的中介这么一个特殊角色,你可以在此检查是否应该在本地缓存远程数据等。...一切都有它的目的:使代码模块化,易于维护和阅读等。你今后读代码的时间永远大于写代码,所以代码的可读性要放在第一位,不要懒得去抽离和构建代码,以后的你会感谢当初的自己的。

    1.9K40

    【Vue.js】015-Vue:Vue中的MVVM、Vue的options选项

    三、Vue中的MVVM 1、MVVM概述 MVVM(Model–View–Viewmodel)是一种软件架构模式; MVVM有助于将图形用户界面的开发与业务逻辑或后端逻辑(数据模型)的开发分离开来,这是通过置标语言或...他把View和Contrller都放在了View层(相当于把Controller一部分逻辑抽离了出来),Model层依然是服务端返回的数据模型。...除此之外,从Controller抽离出来的与UI有关的逻辑都放在了ViewModel中,这样就减轻了Controller的负担; 我简单的画了下MVVM的架构图: 从以上的架构图中,我们可以很清晰的梳理出各自的分工...而持久化抽象模型暂时放在Model层,是因为MVVM诞生之初就没有对这块进行很细致的描述。按照经验,我们通常把数据库、文件操作封装成Model,并对外提供操作接口。...可惜在MVVM这几个英文单词中并没有它的一席之地,它的最主要作用是在View和ViewModel之间做了双向数据绑定。

    4800

    掌握 Jetpack Compose 中的 State,看这篇就够了

    这个过程是自动的,不需要我们手动调用setText或setColor之类的方法。为了实现响应式,Jetpack Compose 使用State对象来感知 UI 状态的变化。...记住这一点(双关):在 Compose 里,我们无法控制我们的 Compose 代码会被多频繁调用,也控制不了它执行的次数。注意,上面这些讨论只有在 Compose 函数中创建状态的时候成立。...它本身不持有任何状态相关的实例——所以它自然就是一个无状态可组合项。什么时候应该把组合项设计成有状态组合项?...在ViewModel中持有状态把状态放在ViewModel中和把它放在可组合项函数中类似。...与其把状态存放在Counter可组合项中,Counter可组合项反过来要求调用者传入count的值用于界面展示和更新。

    8.5K111

    ASP.Net MVC开发基础学习笔记:一、走向MVC模式

    www.aspnetmvc.com/blog/index.aspx的URL,那么我们的WebForm程序会到网站根目录下去寻找blog目录下的index.aspx文件,然后由index.aspx页面的CodeBehind...再说回前面我们运行的ASP.NET MVC程序访问的http://www.aspnetmvc.com/Home/Index这个URL,它访问的其实是HomeController中的Index这个Action...它包括数据、验证规则、数据访问和业务逻辑等应用程序信息。(补充:ViewModel:视图模型) V:View 是用户接口层组件。主要是将Model中的数据展示给用户。...(2)MVC 优点: 1.很容易将复杂的应用分成Model(ViewModel)、View、Controller三个组件模型,将处理后台逻辑代码与前台展示逻辑进行了很好的分离,属于松耦合关系,在大项目应用中...(3)控制器的Action方法执行完成后,返回ViewResult,然后MVC框架在执行ExcuteResult方法时,Controller中的ViewData数据会传递给ViewPage类,其实就是把

    2K30

    技术趋势:是什么让MVC悄然消失的?「建议收藏」

    他把View和Contrller都放在了View层(相当于把Controller一部分逻辑抽离了出来),Model层依然是服务端返回的数据模型。...而ViewModel充当了一个UI适配器的角色,也就是说View中每个UI元素都应该在ViewModel找到与之对应的属性。...除此之外,从Controller抽离出来的与UI有关的逻辑都放在了ViewModel中,这样就减轻了Controller的负担。...而持久化抽象模型暂时放在Model层,是因为MVVM诞生之初就没有对这块进行很细致的描述。按照经验,我们通常把数据库、文件操作封装成Model,并对外提供操作接口。...可惜在MVVM这几个英文单词中并没有它的一席之地,它的最主要作用是在View和ViewModel之间做了双向数据绑定。如果MVVM没有Binder,那么它与MVC的差异不是很大。

    78620

    win10 uwp 如何使用DataTemplate 转换绑定Event到Command绑定 ObservableCollectionDataTemplate 绑定 ViewM

    这是数据模板,一般用在数组的绑定,显示数组中的元素。...假如我们有一个列表,列表里是书,包括书名、作者、还有出版,那么我们只有源信息,如何把它显示到我们的ListView,就需要DataTemplate。...数据转换一个简单方法是另外在 ViewModel 写一个属性,这个属性用于转换变量,然后在前台绑定,但是这样做不好,于是我们比较好的一个做法是做转换器,转换器是一个类,我们需要实现它才能使用,在我们常用的做法是把它写...我们要使用写的转换器,就需要在 xaml 写静态资源,我们也可以把他放在 viewModel,但是我们先说下放在 xaml 的。...项,不是在初始的时候进行修改,可以使用方法: 在修改之后 使用 listView.Itemsource=list 的方法,重新给 Itemsource ,这是不推荐的,因为之后可能在代码写很多添加或移除

    2.7K20

    【前端面试题】2021315面试题

    在网络层面上token明文传输的话会非常的危险,所以建议一定要使用HTTPS,并且把token放在post body里。...5、所以个人建议: 将登陆信息等重要信息存放为SESSION 其他信息如果需要保留,可以放在COOKIE中 3.拦截器的作用?...Axios封装的http拦截器: 在请求或响应被 then 或 catch 处理前拦截它们,分为请求拦截器(发送请求前触发)和响应拦截器(得到响应结果后触发)。...当然这些事 ViewModel 已经帮我们做了,它可以取出 Model 的数据同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑。...Model 我们可以把Model称为数据层,因为它仅仅关注数据本身,不关心任何行为(格式化数据由View的负责),这里可以把它理解为一个类似json的数据对象。

    1K10

    iOS面试题:MVVM和MVC的区别

    你可能试着把它放在Model对象里,但是也会很棘手,因为网络调用应该使用异步,这样如果一个网络请求比持有它的model生命周期更长,事情将变的复杂。...MVVM衍生于MVC,是对 MVC 的一种演进,它促进了 UI 代码与业务逻辑的分离。它正式规范了视图和控制器紧耦合的性质,并引入新的组件。...他们之间的结构关系如下: 2.1 MVVM 的基本概念 在MVVM 中,view 和 view controller正式联系在一起,我们把它们视为一个组件 view 和 view controller...2.2 MVVM 的注意事项 view 引用viewModel ,但反过来不行(即不要在viewModel中引入#import UIKit.h,任何视图本身的引用都不应该放在viewModel中)(PS...2.3 MVVM 的优势 低耦合:View 可以独立于Model变化和修改,一个 viewModel 可以绑定到不同的 View 上 可重用性:可以把一些视图逻辑放在一个 viewModel里面,让很多

    1.4K30

    技术趋势:是什么让MVC悄然消失的?

    他把View和Contrller都放在了View层(相当于把Controller一部分逻辑抽离了出来),Model层依然是服务端返回的数据模型。...而ViewModel充当了一个UI适配器的角色,也就是说View中每个UI元素都应该在ViewModel找到与之对应的属性。...除此之外,从Controller抽离出来的与UI有关的逻辑都放在了ViewModel中,这样就减轻了Controller的负担。 ?...而持久化抽象模型暂时放在Model层,是因为MVVM诞生之初就没有对这块进行很细致的描述。按照经验,我们通常把数据库、文件操作封装成Model,并对外提供操作接口。...可惜在MVVM这几个英文单词中并没有它的一席之地,它的最主要作用是在View和ViewModel之间做了双向数据绑定。如果MVVM没有Binder,那么它与MVC的差异不是很大。

    88020
    领券