在WPF中我们可以为自己的数据定制显示方式,也就是说虽然某数据是一定的,但我们可以做到让它的表现方式多种多样,比如一个时间,在以前我们一般使用一个字符串(比如“09:32”)来显示,但我们为什么就不能显示一个小时钟呢,利用WPF中的数据模板技术随意并轻松地表现你的数据,其实这更合乎情理,数据模板适用于Content Control类控件与Items Control类控件,我们可以写一个类
这个类很简单的表示了一个人的姓名和照片路径,如果在我们的项目中有一个列表控件ListBox来显示一个由多个人组成的列表,在.net3.0以前我们可能就只能用文本,或者花不少的时间和精力来重构列表控件以便在列表中在显示人名的同时显示照片
比如
这里定义了一个ListBox,并将其ItemTemplate制定为我们自定义的MyTemplate,也就是说列表项将按照MyTemplate制定的方式来显示列表内容,这样我们就可以发挥我们的想像力来自定义MyTemplate为了能在XAML中使用我们的People类,我们需要将其名字空间引入。引用代码:
xmlns:demo=“clr-namespace:Demo”
其中Demo是我们的People类所在的类的命名空间名字,以后可以使用demo来表示这个名字空间了
下面来定义我们的MyTemplate模板,以便知道我们的列表如何来显示它的项目:
我们将模板定义为窗口的资源,资源保存在一个资源字典中的,
x:Key=“MyTemplate” 表示其在资源字典中的键,DataType="{x:Type demo:People}"表示该数据模板针对的数据类型是demo名字空间下的People类,接下来在Gird中我们定义了该数据模板的视