摘要:
在当前的.NET程序中,会经常使用到数据绑定,因为使用数据绑定,可以大大简化一个常用过程——数据源发生变化,反应数据源的数据视图进行相应更新。谈及这个过程,很容易会联想起设计模式中的观察者模式,很明显,数据绑定的设计是这个模式的一种实现。本文使用以下例子说明如何在Silverlight或者WPF中实现到自定义数据类型的属性的数据绑定。 现在有一个表单界面,上面要显示顾客的详细信息,包括名称,年龄,性别。 以下是自定义类型Customer的代码:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://ww. 阅读全文
摘要:
本文是终结点与服务寻址系列的第三篇文章。3.使用ChannelFactory<TChannel>取代服务代理对象 在前面两个实验中,从客户端程序代码可以看到,客户端使用服务代理对象来调用远程服务,那么有没有别的选择呢?答案是肯定的。 在这个实验中,所使用的依然是《[WCF]终结点与服务寻址(二)》中的服务端代码、服务端配置文件以及客户端配置文件。因此这个实验研究的地方是客户端程序的代码。首先给出一个方法的定义:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighli 阅读全文
摘要:
本文是终结点与服务寻址系列的第二篇文章。2.使用基地址部署更具移植性的服务终结点 在《[WCF]终结点与服务寻址(一)》的实验中,我为服务终结点部署设置的访问地址(逻辑地址)使用的是绝对地址。使用这样的地址本身不存在什么技术上的问题,但WCF让开发人员有另外的选择,那就是服务宿主使用基地址,而服务终结点使用相对地址,最后同样为终结点构成完整的访问地址。在本文的实验中,服务契约与服务的实现都没有任何改变,但我对服务宿主程序做了一些修改,使得启动宿主程序时,显示更多的信息,修改后的代码如下:代码Code highlighting produced by Actipro CodeHighlight. 阅读全文
摘要:
在开发中,经常会以层次结构来组织数据,最典型的例子莫过于树视图。本文讲述Silverlight中的层次数据的递归绑定,采用TreeView作为示例控件。 在本文中,以“学校——学院——专业”作为数据层次示例,由此构建一下类型: 代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> public class School{ public string SchoolName { get; set; } public ObservableColle 阅读全文
摘要:
操作系统的课程设计是做一个文件系统。我选择了用Silverlight做出该文件操作系统的界面,因为打算吃些在OJ和团队网站上用上该界面,一举三得。 在文件操作系统的界面很自然少不了树状文件结构,该控件第一个令我想到的效果就当然是动态加载文件结构,毫无疑问,这是很好的用户体验与软件性能的结合。效果参加下图: 点击目录前的界面: 点击目录Catalog0-2后的界面: 细心的读者可以发觉,在点击前,Catalog0-2这个目录项的前方没有那个小箭头图标,点击后的目录才有,这算是动态加载的一个证明。由于篇幅问题,不能给出完整的代码。以下说一下实现动态加载的几个途径: 1)通过Items属性动态添加. 阅读全文
摘要:
最近在拜读蒋金楠先生的《WCF技术剖析(卷1)》,在WCF这门技术上,我觉得此书和《WCF从原理到实践》是最适合用于学习的,因为讲解都很详尽,尤其是前者更加深入讲究原理。 为了加深理解和学习研究,我决定开始写一系列的文章,这些文章描述了我在学习过程中总结的知识,然后通过实验尽可能证明这些知识。但并不是所有的知识都可以简单做实验展示的,因此可能在某些地方,我只能直接从书中引用。 本系列一共分为五篇文章,分别是以下五个实验: 1.简单通过绝对的逻辑地址部署服务终结点 2.使用基地址部署更具移植性的服务终结点 3.使用ChannelFactory<TChannel>取代服务代理对象 4. 阅读全文
摘要:
过去一直有个Silverlight的技术疑难没有得到解决,那就是如果在Code Behind中获取模板中定义的各个对象的引用。参考一下Xaml代码:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> <ListBox x:Name="lbx_listBox" <ListBox.ItemPanel> <ItemsPanelTemplate x:Key="fileListItemsPanel 阅读全文
摘要:
在WCF中,一个客户端应用程序要使用一个已经部署好的WCF服务,它就必须知道几个关于这个服务的数据,称之为服务的元数据。这些元数据包括:1)服务契约的元数据;2)服务的访问地址;3)服务访问方式的配置。在上一篇文章的操作示例中,我使用直接复制代码的方式,把服务契约的元数据公开给客户应用程序,访问地址使用硬编码的方式在客户应用程序代码中编写;服务的访问方式使用标准绑定中的BasicHttpBindng,同样是在客户应用程序中硬编码确定。综上所说,在上一个操作示例中,我公开服务元数据的方式之所以有效是因为我同时开发服务和客户应用程序。但是在真正的系统开发中,大部分情况里,服务开发商跟客户应用程序. 阅读全文