• WPF数据模版


    WPF模版主要分为俩大类:

    ControlTemplate: 控件的外观,也就是控件是什么样子

    DataTemplate: 是数据内容的表现,一条数据显示成什么样子

    1. 数据模版常用的地方有以下几处:

    • ContentControl的ContentTemplate属性。
    • ItemsControl的ItemTemplate属性。
    • GridViewColumn的CellTemplate属性。

    2. 示例

    ItemsControl

    image

    image

    image

    ContentControl

    image

    image

    3. DataTemplate除了可以作用在控件上,也可以作用再数据类型上

    01 <Window x:Class="DeepXAML.MainWindow"
    03         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    04         xmlns:local="clr-namespace:DeepXAML"       
    05         xmlns:sys="clr-namespace:System;assembly=mscorlib"
    06          xmlns:cl="clr-namespace:System.Collections;assembly=mscorlib"
    07         Title="MainWindow" Height="250" Width="450">
    08     <Window.Resources>
    09         <DataTemplate DataType="{x:Type local:Student}">            
    10             <StackPanel Orientation="Horizontal" >
    11             <Grid Margin="5">                
    12                 <Rectangle Fill="YellowGreen"  Width="{Binding  Path=Score}"/>
    13                 <TextBlock  Text="{Binding Path=Name}"></TextBlock>
    14             </Grid>
    15                 <TextBlock Text="{Binding Path=Score}" Margin="5"></TextBlock>
    16             </StackPanel>
    17         </DataTemplate>
    18         <cl:ArrayList x:Key="allStudentsList">
    19             <local:Student Name="Jack" Gender="True" Score="80"></local:Student>
    20             <local:Student Name="Tom" Gender="False" Score="40"></local:Student>
    21             <local:Student Name="Jack" Gender="True" Score="75"></local:Student>
    22         </cl:ArrayList>
    23     </Window.Resources>
    24     <StackPanel x:Name="stackPanel">
    25         <ListBox ItemsSource="{StaticResource ResourceKey=allStudentsList}" FontSize="15"></ListBox>
    26         <TextBlock Margin="10">Below is combox</TextBlock>
    27         <ComboBox ItemsSource="{StaticResource ResourceKey=allStudentsList}" FontSize="15"></ComboBox>
    28     </StackPanel>
    29 </Window>

    image

    4. DataTemplate作用在XML元素上

    01 <Window x:Class="DeepXAML.MainWindow"
    03         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    04         xmlns:local="clr-namespace:DeepXAML"       
    05         xmlns:sys="clr-namespace:System;assembly=mscorlib"
    06          xmlns:cl="clr-namespace:System.Collections;assembly=mscorlib"
    07         Title="MainWindow" Height="250" Width="450">
    08     <Window.Resources>
    09         <DataTemplate DataType="Student">            
    10             <StackPanel Orientation="Horizontal" >
    11             <Grid Margin="5">                
    12                 <Rectangle Fill="YellowGreen"  Width="{Binding  XPath=@Score}"/>
    13                 <TextBlock  Text="{Binding XPath=@Name}"></TextBlock>
    14             </Grid>
    15                 <TextBlock Text="{Binding XPath=@Score}" Margin="5"></TextBlock>
    16             </StackPanel>
    17         </DataTemplate>
    18         <XmlDataProvider x:Key="xmlDp" XPath="Students/Student">
    19             <x:XData>
    20                 <Students xmlns="">
    21                     <Student Name="Jack" Score="80"></Student>
    22                     <Student Name="Tom" Score="40"></Student>
    23                     <Student Name="David" Score="75"></Student>
    24                 </Students>
    25             </x:XData>
    26         </XmlDataProvider>
    27     </Window.Resources>
    28     <StackPanel x:Name="stackPanel">
    29         <ListBox ItemsSource="{Binding Source={StaticResource xmlDp}}" FontSize="15"></ListBox>
    30         <TextBlock Margin="10">Below is combox</TextBlock>
    31         <ComboBox ItemsSource="{Binding Source={StaticResource xmlDp}}" FontSize="15"></ComboBox>
    32     </StackPanel>
    33 </Window>

    image

  • 相关阅读:
    转载: jQuery事件委托( bind() live() delegate()) [委托 和 绑定的故事]
    转载:CPU的位数和操作系统的位数
    javascript 过滤空格
    转载: js jquery 获取当前页面的url,获取frameset中指定的页面的url(有修改)
    转载:struts标签<s:date>的使用
    转载:s:if的用法
    解决cordova-plugin-actionsheet导致Android丑陋的问题
    ionic框架对Android返回键的处理
    解决魅族手机无法连接Mac调试
    谷歌开发者大会传达的8条关键信息
  • 原文地址:https://www.cnblogs.com/luluping/p/2039507.html
Copyright © 2020-2023  润新知