<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_敏敏特穆尔的窝窝</title><subtitle type="text">奔跑中的痕迹</subtitle><id>http://feed.cnblogs.com/blog/u/63719/rss</id><updated>2012-05-14T00:48:39Z</updated><author><name>敏敏特穆尔的窝窝</name><uri>http://www.cnblogs.com/muer/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/muer/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/63719/rss"/><entry><id>http://www.cnblogs.com/muer/archive/2012/04/10/MVVM_Converter.html</id><title type="text">mvvm里面的转换器的使用</title><summary type="text">MVVM:有的时候，数据库存的是0,1,3,但是页面显示的时候0：未读，已读。。。</summary><published>2012-04-10T03:25:00Z</published><updated>2012-04-10T03:25:00Z</updated><author><name>敏敏特穆尔的窝窝</name><uri>http://www.cnblogs.com/muer/</uri></author><link rel="alternate" href="http://www.cnblogs.com/muer/archive/2012/04/10/MVVM_Converter.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/muer/archive/2012/04/10/MVVM_Converter.html"/><content type="html">&lt;p&gt;有的时候，数据库存的是0,1,3,但是页面显示的时候0：未读，已读。。。&lt;/p&gt;&lt;p&gt;1.定义转换器&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;using System;&lt;br/&gt;using System.Net;&lt;br/&gt;using System.Windows;&lt;br/&gt;using System.Windows.Controls;&lt;br/&gt;using System.Windows.Documents;&lt;br/&gt;using System.Windows.Ink;&lt;br/&gt;using System.Windows.Input;&lt;br/&gt;using System.Windows.Media;&lt;br/&gt;using System.Windows.Media.Animation;&lt;br/&gt;using System.Windows.Shapes;&lt;br/&gt;using System.Windows.Data;&lt;br/&gt;&lt;br/&gt;namespace Glodon.Module.DocRegisterManage.Help&lt;br/&gt;{&lt;br/&gt;&lt;br/&gt;    public class StateConverter : IValueConverter&lt;br/&gt;    {&lt;br/&gt;        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)&lt;br/&gt;        {&lt;br/&gt;&lt;br/&gt;            if (int.Parse(value.ToString()) == 1)&lt;br/&gt;            {&lt;br/&gt;                return "A";&lt;br/&gt;            }&lt;br/&gt;            else if (int.Parse(value.ToString()) == 2)&lt;br/&gt;            {&lt;br/&gt;                return "B";&lt;br/&gt;            }&lt;br/&gt;            else&lt;br/&gt;            {&lt;br/&gt;                return "C";&lt;br/&gt;            }&lt;br/&gt;        }&lt;br/&gt;&lt;br/&gt;        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)&lt;br/&gt;        {&lt;br/&gt;            throw new NotImplementedException();&lt;br/&gt;        }&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;}&lt;br/&gt;&lt;/div&gt;&lt;p&gt;2.在XMAL文件引入转换器命名空间&lt;/p&gt;&lt;p&gt;&amp;nbsp; xmlns:helper="clr-namespace:Glodon.Module.DocRegisterManage.Help"&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;3.声明资源&lt;/p&gt;&lt;p&gt;&amp;lt;UserControl.Resources&amp;gt;&lt;br /&gt; &amp;lt;helper:StateConverter x:Key="StateConvert"/&amp;gt;&lt;br /&gt; &amp;lt;helper:DataContextProxy x:Key="DataContextProxy" /&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;4.在gv里面使用资源&lt;/p&gt;&lt;p&gt;&amp;lt;TR:GridViewDataColumn IsReadOnly="True" DataMemberBinding="{Binding DState,Converter={StaticResource StateConvert}, Mode=OneWay}" Header="状态" IsFilterable="False" Width="80" &amp;nbsp; HeaderTextAlignment="Center" &amp;nbsp;/&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/muer/aggbug/2440224.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/muer/archive/2012/04/10/MVVM_Converter.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/muer/archive/2012/04/10/linq1.html</id><title type="text">linq里面似in的查询</title><summary type="text">linq里面似 in的查询</summary><published>2012-04-10T03:13:00Z</published><updated>2012-04-10T03:13:00Z</updated><author><name>敏敏特穆尔的窝窝</name><uri>http://www.cnblogs.com/muer/</uri></author><link rel="alternate" href="http://www.cnblogs.com/muer/archive/2012/04/10/linq1.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/muer/archive/2012/04/10/linq1.html"/><content type="html">&lt;p&gt;&amp;nbsp;1.linq里面似in的查询 &amp;nbsp;&lt;/p&gt;&lt;p&gt;List&amp;lt;string&amp;gt; source = new List&amp;lt;string&amp;gt;{ "aaa", "bbb" }; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;List&amp;lt;string&amp;gt; px = new&amp;nbsp; List&amp;lt;string&amp;gt; { "aaa", "bbb", "ccc" };&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;var q = from s in source&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from p in px &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; where s==p &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select s;&lt;/p&gt;&lt;p&gt;2. 得到集合里面是&amp;nbsp; p.DState in （1, 100,200 ）的集合&lt;/p&gt;&lt;p&gt;&amp;nbsp; List&amp;lt;int&amp;gt; pp = new&amp;nbsp; List&amp;lt;int&amp;gt; { 1, 100,200 }; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (queryString == "AllState") &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DataSouce = new ObservableCollection&amp;lt;DocRegister&amp;gt;((from p in _returnList &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from ids in pp &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where p.DState == ids &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select p).ToList());&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;3.根据一个条件过滤数据集合queryString是条件&lt;/p&gt;&lt;p&gt;&amp;nbsp;DataSouce = new ObservableCollection&amp;lt;DocRegister&amp;gt;(_returnList.Where(p =&amp;gt; p.DState == Convert.ToInt32(queryString)).ToList());&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/muer/aggbug/2440187.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/muer/archive/2012/04/10/linq1.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/muer/archive/2012/04/04/mar.html</id><title type="text">买ipad感受</title><summary type="text">每个产品背后都有自己的一段故事。</summary><published>2012-04-04T02:40:00Z</published><updated>2012-04-04T02:40:00Z</updated><author><name>敏敏特穆尔的窝窝</name><uri>http://www.cnblogs.com/muer/</uri></author><link rel="alternate" href="http://www.cnblogs.com/muer/archive/2012/04/04/mar.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/muer/archive/2012/04/04/mar.html"/><content type="html">&lt;p&gt;&lt;br /&gt;自己一直想入手一个IPAD，然后就产生下面的小故事。&lt;/p&gt;&lt;p&gt;1故事一：大跌1k，说明了什么？&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 买苹果的产品吧，一般不会大跌的，但是从上市到现在大跌1k，也不是个小数目，这也太快了吧，才一个月的时间，尤其是在国内，似&lt;br /&gt;乎有点不可思议。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 关注最直接的方法是看淘宝的销量，以及价格，通过这一个月的观察，我发现从4.5K跌倒现在的3.5K由于海关的原因，又回到现在的3.6K&lt;br /&gt;看样子好像还要跌。。。。。。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 一个产品的好坏，只能用市场去验证，由于市场的饱和以及产品本身的特点，也许这已经是最好的结果了。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 最近想要一个IPAD，几乎有事没事就会关注他的价格，以及问题，感觉自己比他们的CEO都关心他的价格，以及他的货源方式，还有出现的&lt;br /&gt;问题，在这个过程中我发现的很多问题，以及很多有趣的事情比如售后的问题，比如电子泡沫的问题还有很多外在因素，比如归国的可以带几个&lt;br /&gt;IPAD回来倒卖等等。&lt;/p&gt;&lt;p&gt;感受：&lt;br /&gt;1.由于很多产品在国内没上市，大家都想法都是一个样的：不会坏的，真的不会坏吗？&lt;br /&gt;2.你在关心你的产品的售后吗?或许N年后，他只是一堆废铁&lt;br /&gt;3.或许，我们需要一个强强联合的售后市场&lt;/p&gt;&lt;p&gt;&amp;nbsp; 关于售后，分行货与水货，这就涉及到一个售后维修的问题，而维修的诚信度，在国内很招人讨厌的，尤其是在讨人厌的中关村，如果有这&lt;br /&gt;样的一家企业，强强联合的一家企业，可以维修任何品牌的产品，那该是多好的一件事情呀。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;2产品定位：亚马逊Kindle Fire&lt;br /&gt;&amp;nbsp;&amp;nbsp; 2012年02月上市的Kindle Fire，在了解ipad的时候，我了解到这家企业，原因是这家之前在做电纸书，他们家的电纸书还是很火，虽然之&lt;br /&gt;前很少了解这家企业，然后看了这家企业的几件产品，kandle touch 与Kindle 3 ，专门去中关村看了样机，中关村的报价，有点偏高（比淘&lt;br /&gt;宝价高出200-300吧），那在手里面，那款所谓的墨屏确实很爽，只是自己眼睛感觉不舒服，估计是看电脑习惯了。亮度小了吸烟不到自己眼&lt;br /&gt;球了吧。&amp;nbsp; 买家给的的kandel我想试下传说中的朗读，原因很简单，因为这款产品最直接的用户是：不喜欢自己读，靠别人去读的用户。可惜&lt;br /&gt;的是因为没激活的原因，没体验到。&lt;br /&gt;我认识了一个人：贝索斯（Jeff Bezos），我感觉这个人挺有意思的，一直在给自己产品定位，一直在寻求自己市场的用户是谁，比如kindle的&lt;br /&gt;直接用户是，希望通过一部机器去替自己读书的用户，在IPAD冲击的市场还可以看到自己产品的优势，以及特点，我自己认为，真是很难的。&lt;br /&gt;&amp;nbsp; &lt;br /&gt;感受：&lt;br /&gt;1.任何一个产品都应该有自己的定位，有别人比不下去的优点，有自己的个性，这样在这个物竟天择，适者生存的市场里面才能生存下来&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/muer/aggbug/2431770.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/muer/archive/2012/04/04/mar.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/muer/archive/2012/03/19/oracle.html</id><title type="text">感觉有点变态的ORACLE</title><summary type="text">我遇到一个这样问题：在ORACLE里面用这条语句（select * from sys_user）竟然提示我表结构不存在，当然是存在的，可是为什么会这样的，如果想了解怎么操作的可以看下这篇文章。</summary><published>2012-03-19T12:26:00Z</published><updated>2012-03-19T12:26:00Z</updated><author><name>敏敏特穆尔的窝窝</name><uri>http://www.cnblogs.com/muer/</uri></author><link rel="alternate" href="http://www.cnblogs.com/muer/archive/2012/03/19/oracle.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/muer/archive/2012/03/19/oracle.html"/><content type="html">&lt;p&gt;&lt;strong&gt;摘要：&lt;/strong&gt;我遇到一个问题：在ORACLE里面用这条语句（select * from sys_user）竟然提示我表结构不存在，当然是存在的，&lt;br /&gt;可是为什么会这样的，如果想了解怎么操作的可以看下这篇文章。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;我之前在做sql的时候，喜欢在企业管理器里面创建表结构，在oracle里面也有PLsql这样的操作工具，哎呦呀 就是这个&lt;/p&gt;&lt;p&gt;操作工具让我感觉他有点变态。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;我是这样操作的，打开PLsql，创建了表结构，接着就用SQL语句 &lt;span style="background-color: #ff0000;"&gt;select * from sys_user&lt;/span&gt;，结果是提示当前表不存在。&lt;/p&gt;&lt;p&gt;搞了半天原来是这个原因，原来是在这个所谓的企业管理器里面创建的表都给加了双引号,上面的那个查询语句可以这么解决掉&lt;span style="background-color: #ff0000;"&gt;s&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #ff0000;"&gt;elect * from "sys_user"&lt;/span&gt; 这样查询是没问题的。&lt;/p&gt;&lt;p&gt;这就证明了一点就是在我们的ORACLE的企业管理器里面创建的表结构，默认的情况下是给加了&amp;ldquo;&amp;rdquo;&lt;/p&gt;&lt;p&gt;CREATE TABLE "SX"."TAB_WORK" &lt;br /&gt;&amp;nbsp;&amp;nbsp; (&amp;nbsp;"HR_WORK_ID" NVARCHAR2(50) NOT NULL ENABLE, &lt;br /&gt;&amp;nbsp;"W_CONENT" NVARCHAR2(200) NOT NULL ENABLE, &lt;br /&gt;&amp;nbsp;"W_NAME" NVARCHAR2(100) NOT NULL ENABLE, &lt;br /&gt;&amp;nbsp;"BEGIN_DATE" DATE NOT NULL ENABLE, &lt;br /&gt;&amp;nbsp;"END_DATE" DATE NOT NULL ENABLE, &lt;br /&gt;&amp;nbsp;"CREATE_USER_ID" NVARCHAR2(50) NOT NULL ENABLE,&lt;/p&gt;&lt;p&gt;...&lt;/p&gt;&lt;p&gt;&lt;br /&gt;我们一般创建的是这样的&lt;/p&gt;&lt;p&gt;CREATE TABLE TAB_WORK&lt;br /&gt;&amp;nbsp;&amp;nbsp; (&amp;nbsp;HR_WORK_ID NVARCHAR2(50) NOT NULL ENABLE, &lt;br /&gt;&amp;nbsp;W_CONENT NVARCHAR2(200) NOT NULL ENABLE, &lt;br /&gt;&amp;nbsp;W_NAME NVARCHAR2(100) NOT NULL ENABLE, &lt;br /&gt;&amp;nbsp;BEGIN_DATE DATE NOT NULL ENABLE, &lt;br /&gt;&amp;nbsp;END_DATE DATE NOT NULL ENABLE, &lt;br /&gt;&amp;nbsp;CREATE_USER_ID NVARCHAR2(50) NOT NULL ENABLE,&lt;/p&gt;&lt;p&gt;...&lt;/p&gt;&lt;p&gt;看看就是引号的作用，让我感觉超级郁闷。。。。。。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;总结：在ORACLE里面操作数据库表结构的话，尽可能的使用脚本，如果你不知道这个很让人讨厌的规则的话，那真是感觉好郁闷的呀！！！！&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div id="weiboIframe"&gt;&amp;nbsp;&lt;/div&gt;&lt;script type="text/javascript"&gt;// &lt;![CDATA[var ifr = '&lt;ifra'ifr += 'me width="100%" height="115" class="share_self" frameborder="0" scrolling="no" src="http://widget.weibo.com/weiboshow/index.php?language=&amp;width=0&amp;height=250&amp;fansRow=0&amp;ptype=0&amp;speed=100&amp;skin=-1&amp;isTitle=0&amp;noborder=0&amp;isWeibo=0&amp;isFans=0&amp;uid=1578007707&amp;verifier=80e3196e&amp;colors=ff13ca,c280bb,000000,000d14,fc3bcf&amp;dpc=1"&gt;&lt;/ifr'ifr += 'ame&gt;';document.getElementById('weiboIframe').innerHTML = ifr;// ]]&gt;&lt;/script&gt;&lt;img src="http://www.cnblogs.com/muer/aggbug/2406583.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/muer/archive/2012/03/19/oracle.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/muer/archive/2012/03/19/MVVM_VIEWMODEL.html</id><title type="text">MVVM里面:把MODEL转换为VIEWMODE</title><summary type="text">需求：页面有一个列表，需要显示个性化的数据，其中有一个字段是显示数据库里面两个字段的合成字段，数据库存的时候是开始时间：1987-8-8与结束时间1988-8-8但是这一列数据最终展示的时候是 1987-1988。由于这个需求，也就写了VIEWMODEL这个东西。</summary><published>2012-03-19T08:00:00Z</published><updated>2012-03-19T08:00:00Z</updated><author><name>敏敏特穆尔的窝窝</name><uri>http://www.cnblogs.com/muer/</uri></author><link rel="alternate" href="http://www.cnblogs.com/muer/archive/2012/03/19/MVVM_VIEWMODEL.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/muer/archive/2012/03/19/MVVM_VIEWMODEL.html"/><content type="html">&lt;p&gt;摘要：MVVM里面把数据库的MODEL转化为页面需要的VIEWMODEL，今天偷偷的学到了，记录一下，以后备用。&lt;/p&gt;&lt;p&gt;EducationInfo是我定义的VIEWMODEL，页面展示个性化的数据&lt;/p&gt;&lt;p&gt;args.Result是数据库里面的表结构model&amp;nbsp;&lt;/p&gt;&lt;p&gt;需求：&lt;/p&gt;&lt;p&gt;页面有一个列表，需要显示个性化的数据，其中有一个字段是显示数据库里面两个字段的合成字段，数据库存的时候是开始时间：1987-8-8与结束时间1988-8-8&lt;/p&gt;&lt;p&gt;但是这一列数据最终展示的时候是&amp;nbsp;1987-1988。由于这个需求，也就写了VIEWMODEL这个东西。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;我页面显示数据的时候是用BINDING的方法，&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;1.(1)&lt;span style="background-color: #ff0000;"&gt;mvvm里面，只要维护这个东西，比如增加一条记录在页面上，就可以直接维护ObservableCollection，人家说这个是标准MVVM带的属性&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; private ObservableCollection&amp;lt;EducationInfo&amp;gt; _education_info;&lt;br /&gt;&amp;nbsp; &amp;nbsp;(2)&lt;span style="background-color: #ff0000;"&gt;绑定的时候是这么绑定的：args.Result是model&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; _education_info = new ObservableCollection&amp;lt;EducationInfo&amp;gt;(args.Result.Select(ei =&amp;gt; new EducationInfo(ei)));&lt;/p&gt;&lt;p&gt;&amp;nbsp; 全部代码&lt;br /&gt;&amp;nbsp;&amp;nbsp; private ObservableCollection&amp;lt;EducationInfo&amp;gt; _education_info; //viewmode&lt;br /&gt;&amp;nbsp;&amp;nbsp; public void BindDate(string strUserId)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Helper.XExpertProvider.GetEducationItem("8259cb9f-8e2b-4bcd-84a2-969918e9a13e", null,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (s, args) =&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (args.Error != null)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBox.Show(args.Error.Message);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (args.Cancelled == true) return;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _education_info = new ObservableCollection&amp;lt;EducationInfo&amp;gt;(args.Result.Select(ei =&amp;gt; new EducationInfo(ei)));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GVList.ItemsSource = _education_info;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;2.不是标准的MVVM，但是可以实现功能的&lt;br /&gt;&amp;nbsp; 1.我定义的VIEWMODE&lt;br /&gt;&amp;nbsp; private IList&amp;lt;EducationInfo&amp;gt; _education_info;&lt;br /&gt;&amp;nbsp; 2.把MODEL转化为VIEWMODEL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private IList&amp;lt;EducationInfo&amp;gt; _education_info;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void BindDate(string strUserId)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Helper.XExpertProvider.GetEducationItem("8259cb9f-8e2b-4bcd-84a2-969918e9a13e", null,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (s, args) =&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (args.Error != null)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBox.Show(args.Error.Message);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (args.Cancelled == true) return;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="background-color: #ffff00;"&gt;&amp;nbsp;&amp;nbsp; //LINQ语句的表达法等效与下面的lamda 表达式&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #ffff00;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //_education_info = (from ei in args.Result select new EducationInfo(ei)).ToList();&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #ffff00;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #ffff00;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //lamda 表达式&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #ffff00;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _education_info = args.Result.Select(ei =&amp;gt; new EducationInfo(ei)).ToList();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GVList.ItemsSource = _education_info;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;img src="http://www.cnblogs.com/muer/aggbug/2406206.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/muer/archive/2012/03/19/MVVM_VIEWMODEL.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/muer/archive/2012/03/08/Twoway.html</id><title type="text">Binding  TwoWay demo</title><summary type="text">Twoway</summary><published>2012-03-08T04:00:00Z</published><updated>2012-03-08T04:00:00Z</updated><author><name>敏敏特穆尔的窝窝</name><uri>http://www.cnblogs.com/muer/</uri></author><link rel="alternate" href="http://www.cnblogs.com/muer/archive/2012/03/08/Twoway.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/muer/archive/2012/03/08/Twoway.html"/><content type="html">&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('cc0711c3-1b4a-4387-9375-808c55bc94d2')"&gt;&lt;div id="cnblogs_code_open_cc0711c3-1b4a-4387-9375-808c55bc94d2" class="cnblogs_code_hide"&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; System.Linq;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; System.Net;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; System.Windows;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; System.Windows.Controls;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; System.Windows.Documents;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; System.Windows.Input;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; System.Windows.Media;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; System.Windows.Media.Animation;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; System.Windows.Shapes;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; System.ComponentModel;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; System.Windows.Data;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;System.ComponentModel 命名空间提供用于实现组件和控件运行时和设计时行为的类。&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;此命名空间包括用于实现属性和类型转换器、绑定到数据源以及授权组件的基类和接口。 &lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;namespace&lt;/span&gt; SilverlightApplication2&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;partial&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;class&lt;/span&gt; text : UserControl&lt;br /&gt;    {&lt;br /&gt;       &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;一定要是公共的&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;        User user = &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; new User();&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; text()&lt;br /&gt;        {&lt;br /&gt;            InitializeComponent();   &lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; UserControl_Loaded(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)&lt;br /&gt;        {&lt;br /&gt;        &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;    System.ComponentModel.BindableAttribute&lt;br /&gt;           &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; Binding &lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;            user =  &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; User();&lt;br /&gt;            user.Name = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;TerryLee&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;;&lt;br /&gt;            user.Address = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;中国 天津&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;;&lt;br /&gt;            &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;DataContext 数据上下文类型&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;只要把user对象给控件的数据上下文即可&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;            lblName.DataContext = user;  &lt;br /&gt;            lblAddress.DataContext = user;&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; ChangeP_Click(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            user.Address = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;china beijing&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;;&lt;br /&gt;            user.Name = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;muer&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; Button_Click(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.CurrentPr.Text = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;     name:&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; + user.Name.ToString() + &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;   Address:&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; + user.Address.ToString(); ;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;INotifyPropertyChanged：向客户端发出某一属性值已更改的通知。&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;class&lt;/span&gt; User : INotifyPropertyChanged&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;event&lt;/span&gt; PropertyChangedEventHandler PropertyChanged;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; _name;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; Name&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt; { &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; _name; }&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                _name = value;&lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (PropertyChanged != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;)&lt;br /&gt;                {&lt;br /&gt;                    PropertyChanged(&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; PropertyChangedEventArgs(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Name&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;));&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; _address;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; Address&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt; { &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; _address; }&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                _address = value;&lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (PropertyChanged != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;)&lt;br /&gt;                {&lt;br /&gt;                    PropertyChanged(&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; PropertyChangedEventArgs(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Address&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;));&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('179fc2c2-fbd0-43fd-b39d-49e7c5fe8ea5')"&gt;&lt;div id="cnblogs_code_open_179fc2c2-fbd0-43fd-b39d-49e7c5fe8ea5" class="cnblogs_code_hide"&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;UserControl &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;x:Class&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="SilverlightApplication2.text"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;    xmlns&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;    xmlns:x&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="http://schemas.microsoft.com/winfx/2006/xaml"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;    xmlns:d&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="http://schemas.microsoft.com/expression/blend/2008"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;    xmlns:mc&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="http://schemas.openxmlformats.org/markup-compatibility/2006"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;    mc:Ignorable&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="d"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;    d:DesignHeight&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="300"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; d:DesignWidth&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="400"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; Loaded&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="UserControl_Loaded"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Grid &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;x:Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="LayoutRoot"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; Background&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="#46461F"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;RowDefinition &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Height&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="160"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;RowDefinition &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Height&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="40"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;RowDefinition &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Height&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="40"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;RowDefinition &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Height&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="40"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;ColumnDefinition &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Width&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="150"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;ColumnDefinition &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Width&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="*"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Button &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Width&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="100"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; Height&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="30"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; HorizontalAlignment&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Left"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;                Content&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="当前页面的属性值"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;                Grid.Row&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="0"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; &lt;br /&gt;                Grid.Column&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="0"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;                Click&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Button_Click"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;TextBlock &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Foreground&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="White"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; FontSize&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="18"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; Text&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="姓名："&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;           Grid.Row&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="1"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; Grid.Column&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="0"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; HorizontalAlignment&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Right"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;TextBox &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;x:Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="lblName"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; FontSize&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="18"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;               Grid.Row&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="1"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; Grid.Column&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="1"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; HorizontalAlignment&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Left"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;               Text&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="&lt;/span&gt;&lt;span style="color: #808000;"&gt;{Binding Name,Mode=TwoWay}&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;TextBlock &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Foreground&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="White"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; FontSize&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="18"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; Text&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="位置："&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;               Grid.Row&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="2"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; Grid.Column&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="0"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; HorizontalAlignment&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Right"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;TextBox &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;x:Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="lblAddress"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; FontSize&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="18"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;               Grid.Row&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="2"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; Grid.Column&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="1"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; HorizontalAlignment&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Left"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;               Text&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="&lt;/span&gt;&lt;span style="color: #808000;"&gt;{Binding Address,Mode=TwoWay}&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Button &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ChangeP"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; Click&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ChangeP_Click"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;                DataContext&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="&lt;/span&gt;&lt;span style="color: #808000;"&gt;{Binding}&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;                Content&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="改变属性值 "&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;                HorizontalAlignment&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Left"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;                Width&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="78"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;                Height&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="30"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;                Grid.Column&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="1"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;                Grid.Row&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="0"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Button&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;TextBlock &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Foreground&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="White"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; FontSize&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="18"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;                   x:Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="CurrentPr"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;                   Grid.Row&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="4"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; &lt;br /&gt;                   Grid.Column&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="0"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;                   HorizontalAlignment&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Left"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;                   Grid.ColumnSpan&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="2"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Grid&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;UserControl&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;总结：通过&amp;nbsp; Text="{Binding Address,Mode=TwoWay}"&amp;nbsp; 这种方式，当我点击提交按钮的时候不需要写个方法去拿页面上所有元素的值，&lt;br /&gt;只要拿到当前实例化的对象User就可以拿到这个页面的所有的值。这就是MVVM所带来的便捷，可以让开发人员少写很多代码。&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/muer/aggbug/2384988.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/muer/archive/2012/03/08/Twoway.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/muer/archive/2012/02/29/linq.html</id><title type="text">神奇的LINQ  ---可以通过对象来查询数据</title><summary type="text">linq:在一个新项目里面要用这个技术，然后自己拿起书看了下，记录下自己的新发现（为什么会有linq），只适合简单入门的新童鞋看呀！！！</summary><published>2012-02-29T07:47:00Z</published><updated>2012-02-29T07:47:00Z</updated><author><name>敏敏特穆尔的窝窝</name><uri>http://www.cnblogs.com/muer/</uri></author><link rel="alternate" href="http://www.cnblogs.com/muer/archive/2012/02/29/linq.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/muer/archive/2012/02/29/linq.html"/><content type="html">&lt;p&gt;摘要：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; linq:在一个新项目里面要用这个技术，然后自己拿起书看了下，记录下自己的新发现，只适合简单入门的新童鞋看呀！！！&lt;/p&gt;&lt;p&gt;结论：&lt;/p&gt;&lt;p&gt;linq是对象领域与数据领域的一个桥梁。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;为什么会出现Linq？&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;我遇到问题了 那就是我的花很多时间去学操作数据源的语法&lt;/p&gt;&lt;p&gt;读书的时候学习数据库SQL Server ，然后就&lt;span style="background-color: #ffff00;"&gt;&lt;strong&gt;学习了TSQL&lt;/strong&gt;&lt;/span&gt;，&lt;/p&gt;&lt;p&gt;后来是oracle，然后&lt;span style="background-color: #ffff00;"&gt;莫名其妙的学习了很多语言：数据查询语言DQL，数据操纵语言DML， 数据定义语言DDL，数据控制语言DCL&lt;/span&gt;，&lt;/p&gt;&lt;p&gt;然后学习了XML，就学习了&lt;span style="background-color: #ffff00;"&gt;XQuery，XPath ，记得还有（DTD，Schema）反正狠狠的一大把&lt;/span&gt;，&lt;/p&gt;&lt;p&gt;然后就是MySql，当然基本一看就知道了，但是的了解里面的一些特性&lt;/p&gt;&lt;p&gt;再然后就是HTML，&lt;span style="background-color: #ffff00;"&gt;那就的必须学习JS，Jquery这些查询操作html的一些语言&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; 我不知道大家什么感觉，我在学每个技术的时候，感觉他们都有很多相似之处，&lt;span style="background-color: #ffffff;"&gt;比如我都要先拿到一个数据源，然后去操作这些数&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #ffff00;"&gt;&lt;span style="background-color: #ffffff;"&gt;据源，这就是相似之处&lt;/span&gt;&lt;/span&gt;。还有就是操作不同的数据源，我的学不同的操作语言，这个让我很郁闷，我最少的花一个星期才可以很流畅的&lt;/p&gt;&lt;p&gt;去操作这些数据源。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #ffff00;"&gt;既然有这么多相似之处，并且，程序开发人员的学习很多语言，为了解决这个问题，神奇的LINQ就诞生了！&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;神奇的LINQ&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;如果我是计算机刚刚入伍的新兵蛋子，我可没时间去学这么多东西，我可讨厌语法了，有没有什么捷径呀，恩，当然有了，那就是Linq，&lt;/p&gt;&lt;p&gt;一个神奇的技术！神奇的对象！！LINQ就是解决这个问题，只要你会linq，你就没必要去学很多操作语法了，只要会Linq，其他一切搞定，&lt;/p&gt;&lt;p&gt;前提是你会VB，或者是C#，并且你的开发环境支持Linq。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;关于LINQ的一些联想！&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;昨天晚上拿着从蛋子哪里拿来的书，刚看第一页，我就很兴奋，我发现我自己太有才了。&lt;/p&gt;&lt;p&gt;假如，疯子喜欢上一个女孩（沈冰），他特别想知道人家24小时在干什么，比如&lt;/p&gt;&lt;p&gt;---------------------------------&lt;br /&gt;她跟小朋友在说什么呀（小朋友那么开心）？&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;她怎么跟小朋友的父亲（秦皇出去了），他们在聊什么呀？&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;她去图书馆借到什么书呀？&lt;br /&gt;她今天跟那个超市的阿姨说什么了？&lt;br /&gt;她跟她舍友今天怎么这么高兴呀？&lt;br /&gt;她今天跟旁边的帅哥说什么了？&lt;br /&gt;她今天怎么还跟狗狗说话了？&lt;br /&gt;她都跟那些朋友去打球呀？&lt;br /&gt;她一个人走在路上唱的什么歌呀？&lt;br /&gt;...&lt;br /&gt;&lt;strong&gt;----------------------------&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;她跟小朋友在说什么呀（小朋友那么开心）？&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;strong&gt; answer：偷听&amp;nbsp;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;她怎么跟小朋友的父亲（秦皇出去了），他们在聊什么呀？&amp;nbsp;&amp;nbsp; &lt;strong&gt;&amp;nbsp;answer：问秦皇女儿&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/strong&gt; &lt;br /&gt;她去图书馆借到什么书呀？&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;strong&gt;&amp;nbsp;&amp;nbsp; answer：去图书馆问问那个阿姨，让她帮忙查查吧&lt;/strong&gt;&lt;br /&gt;她今天跟那个超市的阿姨说什么了？&amp;nbsp;&amp;nbsp;&lt;strong&gt;&amp;nbsp; answer：问超市阿姨吧&lt;/strong&gt;&lt;br /&gt;她跟她舍友今天怎么这么高兴呀？&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;strong&gt; answer：问舍友呀，前提的先贿赂她&lt;/strong&gt;&lt;br /&gt;她今天跟旁边的帅哥说什么了？&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;strong&gt;&amp;nbsp; answer：气死我了，我要揍他一顿&lt;/strong&gt;&lt;br /&gt;她今天怎么还跟狗狗说话了？&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;strong&gt;&amp;nbsp; answer：。。。&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/strong&gt; &lt;br /&gt;她一个人走在路上唱的什么歌呀？&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;strong&gt; answer：。。。&lt;/strong&gt;&lt;br /&gt;...&lt;br /&gt;&lt;strong&gt;----------------------------&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;上面的答案很不全，并且很不靠谱，其实，如果，我只是假设，&lt;span style="background-color: #ffff00;"&gt;&lt;strong&gt;在她身上按一个监听器，什么都搞定了&lt;/strong&gt;&lt;/span&gt;，这个方法很好，但是你懂的。&lt;/p&gt;&lt;p&gt;或者就好像，你想监听一个人的电话，只要你跟服务商搞好关系，这个是很好办到的。而linq就是这样的一个对象，可以帮助你减少很多财力，物力！&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #ffff00;"&gt;&lt;strong&gt;结论：&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #ffff00;"&gt;&lt;strong&gt;linq是对象领域与数据领域的一个桥梁。&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;就像上面的一个比喻，沈冰沈冰那么多人，都是一个个对象（小朋友，小朋友爸爸。。。），这是一个对象领域，并且他们之间的关系是很分散的&lt;/p&gt;&lt;p&gt;然后是沈冰这个对象所做的事情，去幼儿园所做到事情是一些数据，去超市所做事情也是一些数据，&lt;/p&gt;&lt;p&gt;小朋友跟沈冰之间产生的故事（我们可以比作是数据），&lt;/p&gt;&lt;p&gt;有很多个数据，我们可以当作是数据领域（这里比喻有点不是很合适，因为数据领域是个很大的名词）&lt;/p&gt;&lt;p&gt;如果我们要去把这些数据与对象关联起来的话，我想知道沈冰在2月28号在做什么，这个如果你想知道的话，只有找本人去谈，或者找跟她有关系的&lt;/p&gt;&lt;p&gt;人去打听，但是如果有监听器的话，一切都是那么简单了，监听器里面录制了所有沈冰的信息。而这个监听器就类似LINQ这样的一个东西。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;谢谢蛋子的书，刚拿到书，看了第一页，以上是自己的理解，有可能有偏差，希望大家多多指教哦！&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/muer/aggbug/2373551.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/muer/archive/2012/02/29/linq.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/muer/archive/2012/02/16/WCF1.html</id><title type="text">WCF揭秘随笔：Wcf入门感受</title><summary type="text">wcf揭秘：刚刚入门的，只是看一点点之后的想法</summary><published>2012-02-16T05:28:00Z</published><updated>2012-02-16T05:28:00Z</updated><author><name>敏敏特穆尔的窝窝</name><uri>http://www.cnblogs.com/muer/</uri></author><link rel="alternate" href="http://www.cnblogs.com/muer/archive/2012/02/16/WCF1.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/muer/archive/2012/02/16/WCF1.html"/><content type="html">&lt;p&gt;&lt;strong&gt;&amp;nbsp;1.一个比喻&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;看了WCF半天书，最后脑袋大的要命。最后自己想了一个比喻，不知道恰当否。&lt;/p&gt;&lt;p&gt;一个只会英文美国人（不会日语汉语）&lt;/p&gt;&lt;p&gt;一个只会汉语的中国人（不会英语与日语）&lt;/p&gt;&lt;p&gt;一个只会日语的日本人（不会英语与汉语）&lt;/p&gt;&lt;p&gt;3个人要沟通怎么沟通呢？&lt;/p&gt;&lt;p&gt;我读遇见心想事成的自己的时候看到里面有这么个设备，英国人带着这样一个设备，然后讲话之后，会自动翻译成汉语与日语，这样的话中国人与日本人就理解刚刚那个英国人讲什么东东了。同样中国人带着设备就可以同日本人与英国人进行沟通了。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;我自己认为WCF就好比这个神奇的设备，我只要对着这个设备讲话，不管对方是不是懂汉语，都可以理解我在讲什么。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;2.特性&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;在看DEMO的时候，我发现这里用的最多的是特性 [ ]&lt;/p&gt;&lt;img src="http://www.cnblogs.com/muer/aggbug/2354055.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/muer/archive/2012/02/16/WCF1.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/muer/archive/2012/02/16/WF1.html</id><title type="text">WCF揭秘随笔：wf像什么？</title><summary type="text">其实WF很有意思呢，比我们只认识这个名字之前，WF像什么呢？我这里列出了几个比喻。。。。。。。</summary><published>2012-02-16T05:10:00Z</published><updated>2012-02-16T05:10:00Z</updated><author><name>敏敏特穆尔的窝窝</name><uri>http://www.cnblogs.com/muer/</uri></author><link rel="alternate" href="http://www.cnblogs.com/muer/archive/2012/02/16/WF1.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/muer/archive/2012/02/16/WF1.html"/><content type="html">&lt;p&gt;&amp;ldquo;XX，我的那个工作流（WF）流到你那边了，帮我审批下&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;回家接着进入自己工作流（WF）：洗脸刷牙泡脚睡觉&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;nbsp;最近老是听到这个词，还有自己项目里面老是WF怎么怎么样，所以打开书看了半天，感觉很抽象，自己就想了几个比喻。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;WF像什么？&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/61550/2012021613063468.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #ffff00;"&gt;&lt;strong&gt;大巴：作为一辆大巴，可以把人从一个地方运到另个地方&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;它有一个始发点，一个终点站，还会在不同的站点进行停下来，装人，卸人。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #ffff00;"&gt;&amp;nbsp;&lt;strong&gt;水流：作为一条小河，可以把树叶从一个地方，运到另个地方&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;看秦时明月的时候，秦为灭墨家，在山谷的河的上游放了一种毒，然后，整个家族人员几乎全部死亡。&lt;/p&gt;&lt;p&gt;看美人心计的时候，宫里面的细作，把树叶剪成各种各样的样子，然后扔到水里面，顺着水流流出宫外，传递消息。起点是放叶子的人，重点是收叶子的人。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #ffff00;"&gt;&lt;strong&gt;血循环：起点：血液从左心房出发，把到达全身各处，终点：回到右心房&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;心脏的跳动，带动血液的循环。血液从心房出发，把能量送到身体各处，然后在回到心脏。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;WF是什么？&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;一个老抽象抽象的东西了。&lt;/p&gt;&lt;p&gt;就像跑在路上的大巴，它在跑的时候会把人从一个地方带到另个地方。&lt;/p&gt;&lt;p&gt;就像是跑在渠里面的小河，它在跑的时候会把树叶从一个地方带到另个地方。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;总结：WF应该是一个载体，它自己本身的活动的时候会带动其他事物的活动。（&lt;/strong&gt;活动这个词是自己看书看到的不知道是否恰当，先这么理解了，不行了，后期干掉）&lt;/p&gt;&lt;img src="http://www.cnblogs.com/muer/aggbug/2354031.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/muer/archive/2012/02/16/WF1.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/muer/archive/2012/02/15/WF.html</id><title type="text">自定义工作流是这样设计表结构的吗？</title><summary type="text">最近听一个同事说自己开发了一个工作流，只要修改SQL语句就可以自己定义下一个节点是谁，然后自己试着按照他说的设计了表结构，只要修改表3节点的排序这一列就可以自己定义当前流程的顺序，如果需要加节点，直接在表3添加状态节点可以！</summary><published>2012-02-15T11:38:00Z</published><updated>2012-02-15T11:38:00Z</updated><author><name>敏敏特穆尔的窝窝</name><uri>http://www.cnblogs.com/muer/</uri></author><link rel="alternate" href="http://www.cnblogs.com/muer/archive/2012/02/15/WF.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/muer/archive/2012/02/15/WF.html"/><content type="html">&lt;p&gt;自定义工作流是这样设计表结构的吗？&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;最近听一个同事说自己开发了一个工作流，只要修改SQL语句就可以自己定义下一个节点是谁，然后自己试着按照他说的设计了表结构，&lt;/p&gt;&lt;p&gt;只要修改表3节点的排序这一列就可以自己定义当前流程的顺序，如果需要加节点，直接在表3添加状态节点可以！&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;1.通常所说的一个表单&lt;/p&gt;&lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" width="142"&gt;&lt;p&gt;表单ID&lt;/p&gt;&lt;/td&gt;&lt;td valign="top" width="142"&gt;&lt;p&gt;表单内容&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="142"&gt;&lt;p&gt;表单1&lt;/p&gt;&lt;/td&gt;&lt;td valign="top" width="142"&gt;&lt;p&gt;表单1内容&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;2.工作流引擎:一个自己定义的工作流最简单的：A-B-C-D&lt;/p&gt;&lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" width="142"&gt;&lt;p&gt;工作流标示ID&lt;/p&gt;&lt;/td&gt;&lt;td valign="top" width="142"&gt;&lt;p&gt;名称&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="142"&gt;&lt;p&gt;工作流1&lt;/p&gt;&lt;/td&gt;&lt;td valign="top" width="142"&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;3.自己定义的状态&lt;/p&gt;&lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" width="142"&gt;&lt;p&gt;节点的ID&lt;/p&gt;&lt;/td&gt;&lt;td valign="top" width="142"&gt;&lt;p&gt;节点的名称&lt;/p&gt;&lt;/td&gt;&lt;td valign="top" width="142"&gt;&lt;p&gt;（工作流标示ID）节点所属的工作流&lt;/p&gt;&lt;/td&gt;&lt;td valign="top" width="142"&gt;&lt;p&gt;节点的排序&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="142"&gt;&lt;p&gt;节点1&lt;/p&gt;&lt;/td&gt;&lt;td valign="top" width="142"&gt;&lt;p&gt;提交审批&lt;/p&gt;&lt;/td&gt;&lt;td valign="top" width="142"&gt;&lt;p&gt;工作流1&lt;/p&gt;&lt;/td&gt;&lt;td valign="top" width="142"&gt;&lt;p&gt;2&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="142"&gt;&lt;p&gt;节点2&lt;/p&gt;&lt;/td&gt;&lt;td valign="top" width="142"&gt;&lt;p&gt;领导A进行提出意见&lt;/p&gt;&lt;/td&gt;&lt;td valign="top" width="142"&gt;&lt;p&gt;工作流1&lt;/p&gt;&lt;/td&gt;&lt;td valign="top" width="142"&gt;&lt;p&gt;1&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="142"&gt;&lt;p&gt;节点3&lt;/p&gt;&lt;/td&gt;&lt;td valign="top" width="142"&gt;&lt;p&gt;领导B进行统计总结&lt;/p&gt;&lt;/td&gt;&lt;td valign="top" width="142"&gt;&lt;p&gt;工作流1&lt;/p&gt;&lt;/td&gt;&lt;td valign="top" width="142"&gt;&lt;p&gt;3&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="142"&gt;&lt;p&gt;节点4&lt;/p&gt;&lt;/td&gt;&lt;td valign="top" width="142"&gt;&lt;p&gt;领导C进行归档&lt;/p&gt;&lt;/td&gt;&lt;td valign="top" width="142"&gt;&lt;p&gt;工作流1&lt;/p&gt;&lt;/td&gt;&lt;td valign="top" width="142"&gt;&lt;p&gt;4&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;4.记录表单的当前状态（与1表是1对1的关系）&lt;/p&gt;&lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" width="143"&gt;&lt;p&gt;主键&lt;/p&gt;&lt;/td&gt;&lt;td valign="top" width="143"&gt;&lt;p&gt;表单ID&lt;/p&gt;&lt;/td&gt;&lt;td valign="top" width="143"&gt;&lt;p&gt;表单的在的工作流ID&lt;/p&gt;&lt;/td&gt;&lt;td valign="top" width="139"&gt;&lt;p&gt;当前表单的状态ID&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="143"&gt;&lt;p&gt;表单状态&lt;/p&gt;&lt;/td&gt;&lt;td valign="top" width="143"&gt;&lt;p&gt;表单1主键&lt;/p&gt;&lt;/td&gt;&lt;td valign="top" width="143"&gt;&lt;p&gt;工作流1&lt;/p&gt;&lt;/td&gt;&lt;td valign="top" width="139"&gt;&lt;p&gt;节点4&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/muer/aggbug/2353113.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/muer/archive/2012/02/15/WF.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
