wpflistbox数据模板Word下载.docx
- 文档编号:13182373
- 上传时间:2022-10-07
- 格式:DOCX
- 页数:7
- 大小:21.69KB
wpflistbox数据模板Word下载.docx
《wpflistbox数据模板Word下载.docx》由会员分享,可在线阅读,更多相关《wpflistbox数据模板Word下载.docx(7页珍藏版)》请在冰豆网上搜索。
这里设置触发器其实与选中没有关系,但还是可以用于设置鼠标滑过的样式。
篇二:
wpF学习之深入浅出话模板
wpF学习之深入浅出话模板
图形用户界面应用程序较之控制台界面应用程序最大的好处就是界面友好、数据显示直观。
cui程序中数(wpf,listbox,数据模板)据只能以文本的形式线性显示,gui程序则允许数据以文本、列表、图形等多种形式立体显示。
用户体验在gui程序设计中起着举足轻重的作用-----用户界面设计成什么样看上去才足够的漂亮?
控件如何安排才简单易用并且少犯错误?
这些都是设计师需要考虑的问题。
wpF系统不但支持传统的winfrom编程的用户界面和用户体验设计,更支持使用专门的设计工具blend进行专业设计,同时还推出了以模板为核心的新一代设计理念。
1.1模板的内涵
从字面上看,模板就是“具有一定规格的样板”,有了它,就可以依照它制造很多一样是实例。
我们常把看起来一样的东西称为“一个模子里面刻出来的。
”就是这个道理。
然而,wpF中的模板的内涵远比这个深刻。
binding和基于binding数据驱动ui是wpF的核心部分,wpF最精彩的部分是什么呢?
依我看,既不是美轮美奂的3d图形,也不是炫目多彩的动画,而是默默无闻的模板(template)。
实际上,就连2d/3d绘图也常常是为它锦上添花。
templdate究竟有什么能力能够使得它在wpF体系中获此殊荣呢?
这还要从哲学谈起,“形而上者谓之道,形而下者谓之器”,这句话出自《易经》,大意是我们能够观察到的世间万物形象之上的抽象的结果就是思维,而形象之下掩盖的就是其本质。
显然,古人已经注意到“形”是连接本质和思维的枢纽,让我们把这句话引入计算机世界。
“形而上者谓之道”指的就是基于现实世界对万物进行抽象封装,理顺它们之间的关系,这个“道”不就是面向对象思想吗!
如果再把面向对象进一步提升、总结出最优的对象组合关系,“道”就上升为设计模式思想。
“形而下者谓之气”指的是我们能够观察到的世间万物都是物质类容的本质表现形式。
“本质与表现”或者说“类容与形式”是哲学范畴内的一对矛盾体。
软件之道并非本书研究的主要类容,本书研究的是wpF。
wpF全称windowspresentationFoundation,presentation一词的意思就是外观,呈现,表现,也就是说,在windowsgui程序这个尺度上,wpF扮演的就是“形”的角色、是程序的外在形式,而程序的内容仍然是由数据和算法构成的业务逻辑。
与wpF类似,winform和也都是内容的表现形式。
让我们把尺度缩小到wpF内部。
这个系统与程序内容(业务逻辑)的边界是binding,binding把数据源源不断从程序内部送出来交由界面元素来显示,又把从界面元素搜集到的数据传回程序内部。
界面元素间的沟通则依靠路由事件来完成。
有时候路由事件和附加事件也会参与到数据的传输中。
让我们思考一个问题:
wpF作为windows的表示方式,它究竟表示的是什么?
换句话说,wpF作为一种“形式”,
它表现的内容到底是什么?
答案是程序的数据和算
法----binding传递的是数据,事件参数携带的也是数据;
方法和委托的调用是算法,事件传递消息也是算法----数据在内存里就是一串串字符或字符。
算法是一组组看不见摸不着的抽象逻辑,如何恰如其分的把它们展现给用户呢?
加入想表达一个bool类型,同时还想表达用户可以在这两个值之间自由切换这样一个算法,你会怎么做?
你一定会想使用一个checkbox控件来满足要求;
再比如颜色值实际上是一串数字,用户基本上不可能只看数字就能想象出真正的颜色,而且用户也不希望只靠输入字符来表示颜色值,这时,颜色值这一“数据内容”的恰当表现形式就是一个填充着真实颜色的色块。
,而用户即可以输入值又可以用取色吸管取色来设置值的“算法内容”恰当的表达方式是创建一个colorpicker控件。
相信你已经发现,控件(control)是数据内容表现形式的双重载体。
换句话说,控件即是数据的表现形式让用户可以直观的看到数据,又是算法的表现形式让用户方便的操作逻辑。
作为表现形式,每个控件都是为了实现某种用户操作算法和直观显示某种数据而生,一个控件看上去是什么样子由它的“算法内容”和“数据内容决定”,这就是内容决定形式,这里,我们引入两个概念:
控件的算法内容:
值控件能展示哪些数据、具有哪些方法、能相应哪些操作、能激发什么事件,简而言之就是控件的功能,它们是一组相关的算法逻辑。
控件的数据内容:
控件具体展示的数据是什么。
以往的gui开发技术(+winform)中,控件内部逻辑和数据是固定的,程序员不能改变;
对于控件的外观,程序员能做的改变也非常的有限,一般也就是设置控件的属性,想改变控件的内部结构是不可能的。
如果想扩展一个控件的功能或者更改器外观让其更适应业务逻辑,哪怕只是一丁点的改变,也需要创建控件的子类或者创建用户控件。
造成这个局面的根本原因是数据和算法的“形式”和“内容”耦合的太紧了。
在wpF中,通过引入模板微软将数据和算法的内容与形式接耦合了。
wpF中的template分为两大类:
controltemplate:
是算法和内容的表现形式,一个控件怎么组织其内部结构才能让它更符合业务逻辑、让用户操作起来更舒服就是由它来控制的。
它决定了控件“长成什么样子”,并让程序员有机会在控件原有的内部逻辑基础上扩展自己的逻辑。
datatemplate:
是数据内容的展示方式,一条数据显示成什么样子,是简单的文本还是直观的图形就由它来决定了。
template就是数据的外衣-----controltemplate是控件的外衣,datatemplate是数据的外衣。
下面让我们欣赏两个例子:
wpF中控件不在具有固定的形象,仅仅是算法内容或数据内容的载体。
你可以把控件理解为一组操作逻辑穿上了一套衣服,换套衣服就变成了另外一个模样。
你看到的控件默认形象实际上就是出厂时微软为它穿上的默认衣服。
看到下面图中的温度计,你是不是习惯性的猜到是由若干控件和图形拼凑起来的usercontrol呢?
实际上它是一个progressbar控件,只是我们的设计师为其设计了一套新衣服-----这套衣服改变了其一些颜色、添加了一些装饰品和刻度线并清除了脉搏动画,效果如下图:
wpF中数据显示成什么样子可以由自己来决定。
比如下面这张图,只是为数据条目准备了一个datatemplate,这个datatemplate中用binding把一个textblock的text属性值关联到数据对象的year属性上、把一个Rectangle的width属性和另外一个textblock的text属性关联到数据对象的price属性上,并使用stackpanel和grid为这几个控件布局。
一旦应用了这个datatemplate,单调的数据就变成了直观的柱状图,如下图所示。
以往这项工作不但需要先创建用于展示数据的usercontrol,还要为usercontrol添加显示/回写数据的代码。
如果别的项目中也需要用到这个柱状图,你要做的事情只是将这个xaml代码发给他们。
其代码如下:
[html]viewplaincopyprint
我想,尽管你还没有学习什么datatempldate,但借助前面学习的基础一样可以看个八九不离十了。
1.2数据的外衣datatemplate
“横看成岭侧成峰,远近高低各不同”庐山的美景如此,数据又何尝不是这样呢?
同样一条数据,比如具有id、name、phonenumber、address等student的实例,放在gridView里面有时可能是简单的文本、每个单元格只显示一个属性;
放在listbox里面有时为了避免单调可以在最左端显示一个64*64的小图像,再将其它信息分两行显示在其后面;
如果单独显示一个学生信息则可以用类似简历的复杂格式来展现学生的全部数据。
一样的内容可以用不同的形式来展现,软件设计称之为“数据--视图”模式。
以往的开发技术,如mFc、winform、等,视图要靠usercontrol来实现。
wpF不但支持usercontrol还支持datatemplate为数据形成视图。
不要以为datatempldate有多难!
从control升级到datatemplate一般就是复制,粘贴一下再改几个字符的事儿。
datatempldate常用的地方有三处,分别是:
contentcontrol的contenttempldate属性,相当于给contentcontrol的内容穿衣服。
itemcontrol的itemtemplate,相当于给itemcontrol的数据条目穿衣服。
gridViewcolumn的celltempldate属性,相当于给gridViewcolumn的数据条目穿衣服。
让我们用一个例子对比usercontrol和datatemplate的使用。
例子实现的需求是这样的:
有一列汽车数据,这列数据显示在listbox里面,要求listbox的条目显示汽车的厂商图标和简要参数,单击某个条目后在窗体的详细内容区显示汽车的图片和详细参数。
无论是使用usercontrol还是datatemplate,厂商的logo和汽车的照片都是要用到的,所以先在项目中建立资源管理目录并把图片添加进来。
logo文件名与厂商的名称一致,照片的名称则与车名一致。
组织结构如图:
首先创建car数据类型:
[csharp]viewplaincopyprint
publicclasscar
{
publicstringautomark{get;
set;
}
publicstringname{get;
publicstringyear{get;
publicstringtopspeed{get;
}
为了在listbox里面显示car类型的数据,我们需要准备一个usercontrol。
命名为carlistitemView。
这个usercontrol由一个car类型实例在背后支持,当设置这个实例的时候,界面元素将实例的属性值显示在各个控件里。
carlistitemView的xaml代码如下:
xmlns="
xmlns:
x="
http:
//s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- wpflistbox 数据 模板