继续聊WPF——动态数据模板

来源:未知 责任编辑:责任编辑 发表时间:2013-11-15 19:50 点击:
   我为啥称之为“动态数据模板”?先看看下面的截图,今天,我们就是要实现这种功能。
 
 
 \
 
 
大概是这样的,我们定义的DataTemplate是通过触发器动态应用到ComboBoxItem 上。
 
这个下拉列表控件绑定了一个Person集合,Person类的定义如下:
 
 
[csharp]
public class Person 

    public string Name { get; set; } 
    public int Age { get; set; } 
    public string Email { get; set; } 
    public override string ToString() 
    { 
        return Name; 
    } 

 
 
 
这里重写了ToString方法,因为ComboBox生成的项是调用对象的ToString方法的,为了能不设置数据模板的前提下正确显示列表项,需要重写ToString方法,默认显示姓名属性。
 
然后,我们为ComboBoxItem定义一个处于高亮状态时使用的数据模板,也就是当鼠标移到项上时发生。
[html]
<Window.Resources> 
    <!--
        当项高亮显示时使用的数据模板
    --> 
    <DataTemplate x:Key="hightlightTmp"> 
        <Grid> 
            <Grid.RowDefinitions> 
                <RowDefinition Height="auto"/> 
                <RowDefinition Height="auto"/> 
            </Grid.RowDefinitions> 
            <StackPanel Margin="0,5,0,0" Grid.Row="0" Orientation="Horizontal"> 
                <TextBlock Margin="2,0" FontWeight="Bold" FontSize="14"> 
                            <TextBlock.Text> 
                                <Binding Path="Name" 
                                         StringFormat="姓名:{0}"/> 
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • 浅析.NET下XML数据访问新机制
  • asp.net 面试+笔试题目第1/2页
  • C# 邮件地址是否合法的验证
  • asp.net 设置GridView的选中行的实现代码
  • C#高级编程:数据库连接[1]
  • 经典C++程序1
  • IIS 自动回收导致后台定时器失效的问题解决
  • ASP.NET&#160;GridView列表代码示例
  • Asp.net MVC源码分析--Action Filter的链式调用
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1