根据http://www.winphonecoder.com/forum.php?mod=viewthread&tid=198&extra=page%3D1 前辈的资料 自己整理 记录供自己复习使用
windwos phone 或者 win8 开发里面 经常要使用到数据模版 它的作用 是规范 显示的 ,数据模板就是用来规范数据的显示方式的。 就相当于给你一个入职表格 ,你再表格中每一项中填写对应的数据 这个表格就是一个固定的模版 ,姓名填写在什么位置 ,年纪````
只要是ContentControl的子类基本上都有 数据模版,如Button等,当然,这些控件一般没那必要修改
一般列表形式的控件就最有可能使用到数据模板了,比如ListBox控件,如果你的列表控件只是让用户看信息的,而不需要额外操作,你完全可以考虑使用ListBox的“老爸”——ItemsControl。 listbox 中的模版 就是指每一项 如何显示
数据模板默认是TextBlock控件,只能显示文本, 就是说 当你用一个类 去填充listbox 的时候 在默认模版情况下 ,他会去调用 类的tostring()方法 ,所以就无法按照你预想的样子显示 ,要自己重新定义 一般格式是
以 itemcontrol为例
- <ItemsControl Name="myItemsControl" FontSize="52">
- <ItemsControl.ItemTemplate>
- <DataTemplate>
- <Grid Margin="0,0,0,27">
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="auto"/>
- <ColumnDefinition Width="*"/>
- </Grid.ColumnDefinitions>
- <Grid.RowDefinitions>
- <RowDefinition Height="auto"/>
- <RowDefinition Height="auto"/>
- <RowDefinition Height="auto"/>
- </Grid.RowDefinitions>
- <TextBlock Grid.Column="0" Grid.Row="0" Text="商品:"/>
- <TextBlock Grid.Column="1" Grid.Row="0" Text="{Binding GoodsName}"/>
- <TextBlock Grid.Column="0" Grid.Row="1" Text="单价:"/>
- <TextBlock Grid.Column="1" Grid.Row="1" Text="{Binding Price}"/>
- <TextBlock Grid.Column="0" Grid.Row="2" Text="条码:"/>
- <TextBlock Grid.Column="1" Grid.Row="2" Text="{Binding BarCode}"/>
- </Grid>
- </DataTemplate>
- </ItemsControl.ItemTemplate>
- </ItemsControl>
- 红色的就是 数据模版的 布局 ,每一个项都会按照这个容器内部排列 对应数据绑定 显示出来
- 蓝色 的是对 控件的模版进行数据模版重新声明更改