【WPF】 数据模板(DataTemplate)-格式化数据
作者:互联网
数据模板(DataTemplate)
在.net 中我们可以把2022/8/6格式化为多种样式如:2022-8-6、2022年8月6日等
在WPF中扩展了.net格式化方式,通过数据模板(DataTemplate)可以将数据格式化成图片,动画的方式;例如:2022/8/6可以格式化成日历、时钟等。
总之们可以为自己的数据定制显示方式,也就是说虽然某数据数据是一定的,但我们可以做到让它的表现方式多种多样,比如一个时间,在以前我们一般使用一个字符串(比如“12:03”)来显示,但我们为什么就不能显示一个小时钟呢,其实这更合乎情理,利用WPF中的数据模板技术随意并轻松地表现你的数据.
使用范围
数据模板适用于ContentControl类控件与ItemsControl类控件。DataTemplate作用与ContentControl的ContentPresenter,DataTemplate作用与ItemsControl的ItempanlPresenter
用法
用法一、
在窗体资源定义类 和数据模板
<Window.Resources> <x:Array Type="local:Car" x:Key="cars"> <local:Car Price="100" Year="2000年"/> <local:Car Price="120" Year="2001年"/> <local:Car Price="140" Year="2002年"/> <local:Car Price="200" Year="2004年"/> </x:Array> <DataTemplate DataType="{x:Type local:Car}"> <Grid> <StackPanel Orientation="Horizontal"> <Grid> <Rectangle Height="40" Stroke="Yellow" Fill="Orange" Width="{Binding Price}"/> <TextBlock Text="{Binding Year}"/> </Grid> <TextBlock Text="{Binding Price}" Margin="5,0"/> </StackPanel> </Grid> </DataTemplate> <Window.Resources>
在xaml中使用
<StackPanel Grid.Column="2"> <ListBox ItemsSource="{StaticResource cars}"/> <ComboBox Style="{DynamicResource ComboBoxStyle1}" ItemsSource="{StaticResource cars}" /> </StackPanel>
后台代码
public class Car { public int Price { get; set; } public string Year { get; set; } }
DataTemplate中的数据绑定又是怎样实现的呢?
实例中将Student对象的集合绑定到ListBox控件,并且将ItemTemplate属性设置为实例中定义的DataTemplate,那么在创建ListBox 时,将会依次为集合中的每个Student对象创建一个ListBoxItem,并将 ListBoxItem 的 DataContext 设置为相应的Student对象,同时将DataTemplate 中的元素绑定到Student对象的属性,这样DataTemplate中的控件便和对象的属性完成了绑定。
标签:控件,Student,2022,WPF,数据,DataTemplate,模板 来源: https://www.cnblogs.com/cdaniu/p/16558268.html