MVVM来历:John Gossman 于2005写了一篇关于Model-View-ViewModel模式的博文,这种模式被他所在的微软的项目组用来创建Expression Blend(即'Sparkle')。它跟Martin Fowler的Presentation Model非常相似,唯一不同的是,它填平了presentation model和使用了WPF的丰富的数据绑定的view之间的沟壑。在Dan Crevier发表了神作DataModel-View-ViewModel series博文系列之后,(D)MVVM模式开始变得流行起来。

现目前的MVVM的小问题:从现目前的MVVM大多数都是通过如:

代码

<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras"
x:Class="MvvmLightDragAndDrop.MainPage"
Height="300"
Width="300">

<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Skins/MainSkin.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>

<UserControl.DataContext>
<Binding Path="Main"
Source="{StaticResource Locator}" />
</UserControl.DataContext>

<Grid x:Name="LayoutRoot"
AllowDrop="True"
Background="#FF9F9F9F">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Drop">
<cmd:EventToCommand Command="{Binding HandleDropCommand, Mode=OneWay}"
PassEventArgsToCommand="True" />
</i:EventTrigger>
</i:Interaction.Triggers>
<TextBlock FontSize="36"
FontWeight="Bold"
Foreground="Purple"
Text="{Binding DroppedFileContent}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
TextWrapping="Wrap"
TextTrimming="WordEllipsis" />
</Grid>
</UserControl>

绑定控件的ICommand属性。它使得事件相当的静态耦合,这样的方式灵活性扩展性似乎不是那么理想,让人感觉有点别扭。

Reactive Extensions出来后对MVVM又有了一些新的实现方法: ReactiveXaml

思考:能不能像JQuery那样来处理事件及逻辑呢?

转载于:https://www.cnblogs.com/zhouhoujun/archive/2010/06/22/1762431.html

MVVM模式与Reactive Extensions 学习与思考相关推荐

  1. Reactive Extensions入门(5):ReactiveUI MVVM框架

    从前面几篇文章可以了解到,Rx作为LINQ的一种扩展,极大地简化了异步编程.但Rx的用法不仅如此,由于其可高的扩展性,在其他很多方面也有所应用. 在前面例子中,我们使用代码和UI界面上的元素打交道,这 ...

  2. Reactive Extensions(Rx) 学习

    Bruce Eckel(著有多部编程书籍)和Jonas Boner(Akka的缔造者和Typesafe的CTO)发表了"反应性宣言",在其中尝试着定义什么是反应性应用. 这样的应用 ...

  3. flutter学习笔记-MVVM模式学习解决报错

    最近学习flutter,进行mvvm模式学习的时候,报了一错: [VERBOSE-2:ui_dart_state.cc(199)] Unhandled Exception: Error: Could ...

  4. 朝向能学习, 思考和计划的机器进发——图灵奖得主杨立昆:GPT模式五年就不会有人用了,世界模型才是AGI未来

    目录 朝向能学习, 思考和计划的机器进发--图灵奖得主杨

  5. mvvm模式和mvc的区别_被误解的 MVC 和被神化的 MVVM,值得收藏!

    MVC 的历史 MVC,全称是 Model View Controller,是模型 (model)-视图 (view)-控制器 (controller) 的缩写.它表示的是一种常见的客户端软件开发框架 ...

  6. 移动开发架构之MVVM模式

    MVVM概念的提出和起源 MVVM是Model-View-ViewModel的简写,最早是由微软公司提出并运用,是MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变 ...

  7. 领域驱动和MVVM应用于UWP开发的一些思考

    领域驱动和MVVM应用于UWP开发的一些思考 0x00 起因 有段时间没写博客了,其实最近本来是根据梳理的MSDN上的资料(UWP开发目录整理)有条不紊的进行UWP学习的.学习中有了心得体会或遇到了问 ...

  8. Reactive Extensions入门(4):Rx实战

    Reactive Extensions(Rx)的优点在于能够将传统的异步编程方式从支离破碎的代码调用中解放出来.传统的采用回调的异步编程方式会使得代码很零散,尤其是异步嵌套异步的时候,代码块很难管理. ...

  9. Reactive Extensions (Rx) 入门(5) —— Rx的事件编程③

    原文:http://www.atmarkit.co.jp/fdotnet/introrx/introrx_02/introrx_02_03.html 作者:河合 宜文 合成用的方法 本章将介绍一些Rx ...

最新文章

  1. .svn提交项目提示更新副本
  2. js -“=”“==”和“===”的区别
  3. 桌面虚拟化对企业IT的四大贡献
  4. 添加高精度计时器测量处理能力
  5. 终于当了回up主,来白嫖我历时半年总结的Java思维导图吧!!!
  6. SAP 采购订单税金抓取方法
  7. 第二章 rabbitmq在mac上的安装
  8. toad导入数据_利用TOAD实现EXCEL数据在oracle的导入导出
  9. 「我去,这也能行!」令人惊叹的8个深度学习应用
  10. C++获取当前系统时间并格式化输出
  11. (转)matlab各类数学公式
  12. [Java基础]类和接口的关系
  13. pythonmain是什么意思_Python中if __name__ == __main__详细解释
  14. 使用ZooKeeper
  15. 教学演示软件 模型十二 地理学的水循环模型
  16. oracle 保留池,oracle的内存结构之--查看内存信息+保留池和循环池(摘自文平书)...
  17. python有哪两种表现形式小练笔_写一篇不一样的爱400字:爱有两种表现形式小练笔400字...
  18. Ubuntu下初装QT出现错误cannot find -lGL解决办法
  19. 基于安卓的校园跳蚤市场app
  20. Java的四大引用强、软、弱、虚

热门文章

  1. 【逆序对相关/数学】【P1966】【NOIP2013D1T2】 火柴排队
  2. hbase 根据主键查询
  3. 用 iBiu 3 秒构建出大型 Vue 项目架子
  4. 信息安全隐忧是快递实名的“死穴”
  5. 原生js和jquery常用的DOM操作
  6. socket编程-客户端向服务器发送字符串,传文件
  7. 在按钮上绑定一个图案
  8. (转)Membership、MembershipUser和Roles类 详解
  9. esp8266 继电器接线图_esp8266控制继电器问题(通电瞬间继电器吸合断开一次)
  10. 2020 ccf推荐中文期刊_中国计算机学会推荐中文期刊目录,让业内学者不再盲目投稿...