本文共 3179 字,大约阅读时间需要 10 分钟。
WPF模版主要分为俩大类:
ControlTemplate: 控件的外观,也就是控件是什么样子
DataTemplate: 是数据内容的表现,一条数据显示成什么样子
1. 数据模版常用的地方有以下几处:
2. 示例
ItemsControl
ContentControl
3. DataTemplate除了可以作用在控件上,也可以作用再数据类型上
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | < Window x:Class="DeepXAML.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:DeepXAML" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:cl="clr-namespace:System.Collections;assembly=mscorlib" Title="MainWindow" Height="250" Width="450"> < Window.Resources > < DataTemplate DataType="{x:Type local:Student}"> < StackPanel Orientation="Horizontal" > < Grid Margin="5"> < Rectangle Fill="YellowGreen" Width="{Binding Path=Score}"/> < TextBlock Text="{Binding Path=Name}"></ TextBlock > </ Grid > < TextBlock Text="{Binding Path=Score}" Margin="5"></ TextBlock > </ StackPanel > </ DataTemplate > < cl:ArrayList x:Key="allStudentsList"> < local:Student Name="Jack" Gender="True" Score="80"></ local:Student > < local:Student Name="Tom" Gender="False" Score="40"></ local:Student > < local:Student Name="Jack" Gender="True" Score="75"></ local:Student > </ cl:ArrayList > </ Window.Resources > < StackPanel x:Name="stackPanel"> < ListBox ItemsSource="{StaticResource ResourceKey=allStudentsList}" FontSize="15"></ ListBox > < TextBlock Margin="10">Below is combox</ TextBlock > < ComboBox ItemsSource="{StaticResource ResourceKey=allStudentsList}" FontSize="15"></ ComboBox > </ StackPanel > </ Window > |
4. DataTemplate作用在XML元素上
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | < Window x:Class="DeepXAML.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:DeepXAML" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:cl="clr-namespace:System.Collections;assembly=mscorlib" Title="MainWindow" Height="250" Width="450"> < Window.Resources > < DataTemplate DataType="Student"> < StackPanel Orientation="Horizontal" > < Grid Margin="5"> < Rectangle Fill="YellowGreen" Width="{Binding XPath=@Score}"/> < TextBlock Text="{Binding XPath=@Name}"></ TextBlock > </ Grid > < TextBlock Text="{Binding XPath=@Score}" Margin="5"></ TextBlock > </ StackPanel > </ DataTemplate > < XmlDataProvider x:Key="xmlDp" XPath="Students/Student"> < x:XData > < Students xmlns=""> < Student Name="Jack" Score="80"></ Student > < Student Name="Tom" Score="40"></ Student > < Student Name="David" Score="75"></ Student > </ Students > </ x:XData > </ XmlDataProvider > </ Window.Resources > < StackPanel x:Name="stackPanel"> < ListBox ItemsSource="{Binding Source={StaticResource xmlDp}}" FontSize="15"></ ListBox > < TextBlock Margin="10">Below is combox</ TextBlock > < ComboBox ItemsSource="{Binding Source={StaticResource xmlDp}}" FontSize="15"></ ComboBox > </ StackPanel > </ Window > |
本文转自敏捷的水博客园博客,原文链接http://www.cnblogs.com/cnblogsfans/archive/2011/02/27/1966172.html如需转载请自行联系原作者
王德水