下面是ListBox.ItemTemplate(数据模板)应用的“典型”例子,概述如下两点:

1:Grid部分,用来“规划” 数据 显示的 布局(即数据长成什么样子)

    2:给DataTemplate添加触发器(即给Item添加了触发器),因此联想到,也可以给ControlTemplate添加触发器。

<ListBox.ItemTemplate>
                <DataTemplate DataType="TwoLevelTreeNodeViewModel">
                    <--Grid部分,“规划” 数据 以 何种 样子 展现出来-->                
                    <Grid>
                        <Grid.Background>
                            <ImageBrush AlignmentX="Left" AlignmentY="Top" TileMode="Tile" ViewportUnits="Absolute" Viewport="0,0,229,42" ImageSource="/FounderAMP;component/Images/Police/SearchResult_bg.png"/>
                        </Grid.Background>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="*"/>
                            <ColumnDefinition Width="11"/>
                        </Grid.ColumnDefinitions>
                        <Rectangle Name="selectedBackground" Fill="#3d7cff" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Column="0" Grid.ColumnSpan="2" Visibility="Collapsed"/>
                        <TextBlock Name="headerLabel" Text="{Binding Path=HeaderText}" Grid.Column="0" TextTrimming="WordEllipsis" ToolTip="{Binding Path=HeaderText}"   HorizontalAlignment="Stretch" TextAlignment="Left" VerticalAlignment="Center" Margin="8,0,0,0" Width="200" FontFamily="Microsoft YaHei" FontSize="13" />
                        <TextBlock Name="footerLabel" ToolTip="{Binding Path=FooterText}" TextTrimming="WordEllipsis" Text="{Binding Path=FooterText}" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" FontFamily="Microsoft YaHei" FontSize="13" FontWeight="Bold" Margin="0,0,6,0" />
                        <Image Source="/FounderAMP;component/Images/Police/Downward_Triangle.png" Grid.Column="1" Cursor="Hand" Visibility="{Binding Path=ExpandingVisibility}" Name="ExpandOrgNodeImage" MouseLeftButtonDown="ExpandOrgNodeImage_MouseLeftButtonDown" Tag="{Binding}"/>
                    </Grid>
                    <--给DataTemplate添加触发器(即给Item添加了触发器)-->
                    <DataTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="True"><-- 由于DataTemplate 是为ListBox.ItemTemplate定义的,所以当鼠标悬停在“Item”上时,会“激发”该触发器
                            <Setter TargetName="selectedBackground" Property="Visibility" Value="Visible"/>
                            <Setter TargetName="headerLabel" Property="Foreground" Value="White"/>
                            <Setter TargetName="footerLabel" Property="Foreground" Value="White"/>
                            <Setter TargetName="ExpandOrgNodeImage" Property="Source" Value="/FounderAMP;component/Images/Police/downwardTriangle_WhiteBackground.png"/>
                        </Trigger>
                    </DataTemplate.Triggers>
                   
                </DataTemplate>
            </ListBox.ItemTemplate>

最新文章

  1. 【集合框架】JDK1.8源码分析之Collections &amp;&amp; Arrays(十)
  2. 关于域名系统DNS解析IP地址的一些总结
  3. MySQL 各种超时参数的含义
  4. Cosh.3
  5. mysql 5.7.17发布
  6. php常见问题
  7. Spring IoC原理详解
  8. Docker on CentOS for beginners
  9. C#Windows窗体应用程序MyKTV项目
  10. ES6 — 新增关键字let、const
  11. Branch and Bound:分支限界算法
  12. RegisterClientScriptBlock CommandName 模块列 操作完成 提示
  13. 存储过程 分页【NOT IN】和【&gt;】效率大PK 千万级别数据测试结果
  14. Ubuntu 创建快捷方式的方法
  15. 从零開始学习制作H5应用——V5.0:懊悔机制,整理文件夹,压缩,模板化
  16. easyUI表单基础知识
  17. Linq标准查询操作符
  18. 【Python】 配置文件相对路径&amp;软件自动执行的工作目录
  19. Java学习笔记之——类与对象
  20. CentOS7安装cratedb

热门文章

  1. C++学习笔记--友元
  2. FMX 高手博客
  3. mysql锁机制之乐观锁(二)
  4. angular-selcet
  5. linux 常用命令总结(三)
  6. Selenium+Python常见定位方法
  7. 【.Net基础一】 类型、对象、线程栈、托管堆运行时的相互关系
  8. 【ES6】改变 JS 内置行为的代理与反射
  9. 20145331 《Java程序设计》第4周学习总结
  10. ubuntu 12.04及12.10无法安装 ia32-libs