2023年7月19日发(作者:)
WPF随笔(⼗五)--模板选择器实现控件类型切换每每尝试,就会有新发现。今天就带来⼀个根据数据类型动态切换控件类型的⽰例。1.需求场景描述有这样⼀个场景,表单⾥某个字段的数据类型不是固定的,⽽是由⼀个可配置的数据结构定义的,数据类型发⽣变化时,使⽤的控件类型也是固定的。⽐如说数据类型是⽂本,就⽤TextBox展⽰;数据类型是枚举时,就⽤ComboBox展⽰;当数据类型是时间时,就⽤DateTimePicker展⽰;听起来不算发杂,实现起来也没有那么困难。具体思路就是使⽤WPF的模板选择器来切换不同的控件数据模板。2.实现过程2.1.定义模板选择器创建模板选择器类DataViewTemplateSelector,继承⾃基类DataTemplateSelector。根据需要创建不同类型的数据模板DataTemplate,通过数据绑定时传递的参数来判断使⽤什么类型的数据模板。 public class DataViewTemplateSelector:DataTemplateSelector { public DataTemplate TextTemplate { get;set; } public DataTemplate NumberTemplate { get;set; } public DataTemplate ComboTemplate { get;set; } public DataTemplate DateTemplate { get; set; } public DataTemplate RadioTemplate { get; set; } public override DataTemplate SelectTemplate(object item, DependencyObject container) { DetailDataTypeDto detail = (DetailDataTypeDto)item; if (detail!=null) { Type type =
switch ( { case "选项": return ComboTemplate; //break; case "⽇期": return DateTemplate; case "是否": return RadioTemplate; default: return TextTemplate; //break; } } else { return null; } //return Template(item, container); } }GetType();ElementDataType)2.2.定义模板资源
发布者:admin,转转请注明出处:http://www.yc00.com/web/1689723737a281228.html
评论列表(0条)