随笔分类 - MVVM
摘要:本文介绍在 MVVM 中,如何用 ViewModel 控制焦点。 这焦点设置个东西嘛,有些争论。就是到底要不要用 ViewModel 来控制视图的键盘输入焦点。这里不讨论,假设你就是要通过 VM,设置输入焦点在哪里。 MSDN 有解释关于 Focus 的,还有 FocusManager,点击这里打开。不知道的话建议你先看看,只求结果的可以直接看下面代码,抄就是了。这次,初级的解释全部略过,直接说做...
阅读全文
摘要:IValueConverter,做 WPF 的都应该接触过,把值换成 Visibility 、Margin 等等是最常见的例子,也有很多很好的博文解释过用法。本文只是解释一下,MVVM 中一些情景。 我遇到过一个用例,做些简单的数据可视化。要求把 enum 换成图片。 MVVM 模式下,是通过 ViewModel 把业务类 Model 暴露给 View,用绑定完成 ViewModel 和 View...
阅读全文
摘要:本文说明怎样把 DoubleClick 连接至 ICommand。方法很多。推荐使用 Attach Property 方式,因为它能把任何 RoutedEvent 接上任何 ICommand。 之前写过一篇博文关于 MVVM 中双击事件触发 ICommand 的办法,我说要么你自己写 Attached Property,要么下载别人写好的,比如支持 Collections 的 CommandBeh...
阅读全文
摘要:树结构放在 WPF ,有大家熟悉的 TreeView、Menu / MenuItem 等等,自定义的话它是 HierarchicalDataTemplate。 用上 MVVM 模式,视图与数据分离,意味着你不再需要管 UI ,不用再在 TreeView 内上上下下跑来跑去找控件了。MVVM 不是把树结构变成不是一颗树,只是,你操作的,是一个具树结构的集合而已。我很怕搞 UI,我觉得,这是个解脱,起...
阅读全文
摘要:接上篇,我留到这里才介绍怎样测试,因为不会做的话也不会测做得对不对。说是单元测试的话,其实应该设计好 Model 后,定好大概 VM 内要干什么之后,马上可以动手写测试代码。 很多公司没有规定如何测试,更加没有单元测试,也没考虑 TDD,或许是有他们的原因的,不一定是因为水平问题的,也不一定是同事能力所限。还真的有很多人,很多老开发,不愿意写测试。这测试只是一种开发方法,是其中一个而已。没有所谓...
阅读全文
摘要:上一篇介绍了增加删除行可以怎样做,现在说填写时候,在某一栏让用户选择,选项的集合是每行数据共用。想说说一个真的系统内,你或许要的一些设计、一些你需要做的决定。 技术上,这次有 : BackgroundWorker 加载列表 消除采购订单 ViewModel 对另一个它自己要打开的 View 的依赖 要 Routed Event 的地方你要绑个 ICommand 过去的办法...
阅读全文
摘要:上一篇,开始了采购订单的开发,谈完 Combo Box 怎样绑定到 ViewModel 的集合,还把选定项的其他信息一并显示在 View 的另一个控件(TextBlock)。这次继续谈表头的部分,和介绍明细行的绑定。 由于单纯把单一个普通控件绑到 ViewModel 属性比较简单,我只介绍一个,其他的请自行看代码。 VIEWMODELS 就拿单据号来看看。它在 View 上是一个 TextBox,...
阅读全文
摘要:上一篇,只介绍 VM 与 View 是如何关联起来,说了些注意项,还有个超简化的例子。这次来点比较实际的,比较靠近项目内会遇到的。 这次看看,采购订单这业务单据,在 MVVM 模式中实现方式的一个演示。实现方式很多,这示范也只是其中一种。这内容比较多,要分开几次讲。 说在前面,以下是用 VS 2008,.net 3.5,以及对应的 WPF Toolkit 制作。这样的话,应该绝大部分人都能应用以下...
阅读全文
摘要:前言 MVVM 就是 Model – View – ViewModel 三组功能(类)分割的设计模式。废话不多说,不知道的自己上网查。 用 MVVM 我认为最大好处是能对 ViewModel 做单元测试。另外,MVVM 分工也比较明显,方便安排程序员分组分工进行项目,基本设计有了之后可以各自敲。 这样的话,写出来,类(class)最起码有三个。比如 Window1 作为 View,Windo...
阅读全文

浙公网安备 33010602011771号