2021-10-18

WPF中数据模板
在WPF中我们可以为自己的数据定制显示方式,也就是说虽然某数据数据是一定 的,但我们可以做到让它的表现方式多种多样,比如一个时间,在以前我们一般使用一 个字符串(比如“12:03”)来显示,但我们为什么就不能显示一个小时钟呢,其实这 更合乎情理,利用WPF中的数据模板技术随意并轻松地表现你的数据.
数据模板适用于Content Control类控件与Items Control类控件.

一、场景模拟
假设我们现在有如下需求:

我们需要在ListBox中的每个Item中显示某个成员的姓名、年龄以及喜欢的颜色,点击Item的时候,会在右边 显示详细信息,同时也想让ListBox的样式变得好看一些,比如带有绿色边框等。
为了实现以上需求,我们可以使用控件模板来修改ListBox的默认样式,使之变得生动有趣,使用数据模板来 改变ListBoxItem的数据呈现形式。
二、Demo
为了改变ListBoxItem的外观,我们在资源里定义一个名字为listBoxItemTemplate的数据模板,模板中使用 Binding将数据进行关联,然后为ListBox的ItemTemplate属性进行赋值。

当我们点击左面ListBoxItem的时候,为了能在右面显示详细信息,我们定义四个Label,绑定左侧选中的 ListBoxItem。
为了绑定方便,我们为四个Label加个父容器StackPanel,并将它的DataContext属性绑定到选中的 ListBoxItem上(四个Label的DataContext就会继承StackPanel的DataContext属性)。
具体代码以及运行截图参见以下:

XAML代码:
<Window x:Class=“DataTemplateDemo1.MainWindow”

xmlns=“http://schemas.microsoft.com/winfx/2006/xaml/presentation”
xmlns:x=“http://schemas.microsoft.com/winfx/2006/xaml”
xmlns:d=“http://schemas.microsoft.com/expression/blend/2008”
xmlns:mc=“http://schemas.openxmlformats.org/markupcompatibility/2006”
xmlns:local=“clr-namespace:DataTemplateDemo1”
mc:Ignorable=“d”
Title=“DataTemplateDemo” Height=“350” Width=“525”>

<Window.Resources>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值