首页 > 其他分享 >【WPF学习】04 数据模板

【WPF学习】04 数据模板

时间:2023-04-23 14:25:01浏览次数:34  
标签:Code Name 04 Color value Add new WPF 模板

相对于上一节控件模板ControlTemplate定义的是控件的外观及行为,数据模板DataTemplate定义的是数据的可视化结构

DataTemplate允许我们实现通过数据绑定来达到数据驱动UI显示的效果

在下面的实例中,我们首先声明一个包含颜色代码Code和颜色名称Name两个字段的一个构造Color类,再建立一个以Color为元素数据类型的List,

Background可以通过string类型的颜色代码赋值,而TextBlock的Text可以通过String类型值赋值,因此我们只需要在DataTemplate中对Background和Text进行数据绑定即可实现由列表控制特定区域的颜色和文本显示

代码实例:

窗口后台代码:

List<Color> value = new List<Color>();
value.Add(new Color() { Code = "#FFB6C1", Name = "浅粉" });
value.Add(new Color() { Code = "#FFC0CB", Name = "粉红" });
value.Add(new Color() { Code = "#DC143C", Name = "猩红" });
value.Add(new Color() { Code = "#FF69B4", Name = "浅紫" });
value.Add(new Color() { Code = "#FF1493", Name = "深粉" });
value.Add(new Color() { Code = "#EE82EE", Name = "紫罗兰" });
list.ItemsSource = value;

public class Color
{
  public string Code { get; set; }
  public string Name { get; set; }
}

窗口XAML代码:

<Grid>
  <ListBox x:Name="list">
    <ListBox.ItemTemplate>
      <DataTemplate>
        <StackPanel Orientation="Horizontal">
          <Border Width="40"
              Height="40"
              Background="{Binding Code}"/> <!--绑定Code字段-->
            
          <TextBlock Margin="10.0"
               Text="{Binding Name}"/> <!--绑定Name字段-->
        </StackPanel>
      </DataTemplate>
    </ListBox.ItemTemplate>
  </ListBox>
</Grid>

运行结果:

上面的只作为一个帮助我们理解的小例子(因为我们需要显示的是颜色和颜色名,因此我们也就分别绑定ColorCode和ColorName),我们在后续的WPF代码编写中,也是遵循这种绑定逻辑,基于不同部分对应的内容绑定不同的数据或行为

标签:Code,Name,04,Color,value,Add,new,WPF,模板
From: https://www.cnblogs.com/90Red/p/17345782.html

相关文章

  • ubuntu 22.04 开机自启动脚本
    ubuntu22.04开机自启动脚本1、完善rc-local.service服务vi/lib/systemd/system/rc-local.service添加红色框框部分[Install]WantedBy=multi-user.targetAlias=rc-local.service2、添加/etc/rc.local文件创建文件touch/etc/rc.local在/etc/rc.local文件里面......
  • odoo中打印模板处理selection字段
    在odoo中处理selection字段,通常情况下,如果拿到的是key,还要再翻译成value.这里可以用fields_get()这个函数,来实现这个问题${dict(item.fields_get(allfields=['type_id'])['type_id']['selection']).get(item.type_id)} 这里的item是数据集‘type_id’selection的字段......
  • 230423 BMS Safety and Fault Management for Lithium Ion Batteries
    WelcometotheStoffelSystemsInsightsvideoseries.I'mEricStoffel,presidentofStoffelSystems.Today'stopicisBMSsafetyandfaultmanagement.Aswediscussedinapreviousvideo,oneoftheprimaryrolesofaBMSinalithium-ionbat......
  • 删除Teamcenter bmide模板
    1.检验是否可以删除bmide_remove_template-u=infodba-p=infodba-g=dba-mode=dryrun-template=v7box BMIDE移除模板日期:周日4月23202308:37:46上午中国标准时间----------------------------------------------------------------------------验证输入参数...Fin......
  • cap4模板表单数据库表的对应关系
    formmain表与col_summary表对应:formmain的id对应col_summary中的form_recordid可以通过formmain的id(masterid)找到col_summary对象  col_summary的id对应ctp_affair表中的object_id可以通过col_summary的id获取ctpaffair对象  ......
  • 两天学会flask(六)---模板-if语句(3)(20分钟)
    flask模板---if语句jinja2在模板里支持if条件语句,这意味着你可以更加灵活的控制页面的显示,同正常python代码一样,它支持elif和else。对上一篇的实例做一些简单的修改,新建一个if.html文件,内容为:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>......
  • 两天学会flask(六)---模板(2)(20分钟)
    jinja2是一个被广泛使用的模板引擎,其设计思想源自于django模板引擎,jinja2扩展了语法,增加了强大的功能,被flask选为内置的模板语言。你应该已经知道,当视图函数返回一个html文件时,需要使用render_template函数,可你想过没有,你编写的html文件里的内容,有很多是有变化的。比如一个网站,你......
  • 【WPF学习】03 控件模板
    查看控件样式具体属性在VirtualStudio中,我们可以通过文档大纲找到具体元素控件,右键选择“编辑模板--编辑副本”可以查看该控件当前的样式具体属性设置,再未对控件自定义样式的时候通过这种方法查看到的即为系统为该控件预设的样式属性由此再注释几个属性:ContentPresenter定......
  • 两天学会flask(五)---模板(20分钟)
    flask框架并没有实现自己的模板,而是使用Jinja2模板引擎,通过render_template函数返回一个html文件,这些html文件默认存储在项目根目录下的tempates文件夹中,这个目录是可以自定义的,创建Flask对象时,通过template_folder来设置。fromflaskimportFlask,render_templateapp=Fla......
  • ubuntu 22.04 安装最新版本的 nodejs
    参考资料:HowToInstallNode.jsonUbuntu20.04采用其中的第二个方法:cd~curl-sLhttps://deb.nodesource.com/setup_18.x-o/tmp/nodesource_setup.shvi/tmp/nodesource_setup.shsudobash/tmp/nodesource_setup.shsudoaptinstallnodejs注意,sudoaptinstallno......