WPF自动产生列,前台代码:

<DataGrid x:Name="Dg" AutoGenerateColumns="True" CanUserAddRows="False"
AutoGeneratingColumn="Dg_OnAutoGeneratingColumn"

DataGrid绑定DataTable

private void TestPage_Loaded(object sender, RoutedEventArgs e)
{
var dt = new DataTable();
dt.Columns.Add("ID");
dt.Columns.Add("Name");
dt.Columns.Add("gender");
dt.Columns.Add("xAge"); DataRow newRow = dt.NewRow();
newRow["ID"] = "ID";
newRow["Name"] = "Name";
newRow["gender"] = "gender";
newRow["xAge"] = "xAge";
dt.Rows.Add(newRow); Dg.ItemsSource = dt.DefaultView;
}

因为数据源不固定(列名、列个数都不固定),所以必须自动生成列,并为每一列绑定下拉框;

下拉框的默认选中项为列的标题。实现字段映射功能

private void Dg_OnAutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
var sexType = new List<string> { "Age", "gender", "ID", "Name","Country" };
var column = new DataGridTemplateColumn { Header = e.PropertyName };
var dataTemplate = new DataTemplate();
var fef = new FrameworkElementFactory(typeof(ComboBox));
var binding = new Binding { Source = sexType };
fef.SetBinding(ItemsControl.ItemsSourceProperty, binding);
var selectVal = new Binding(e.PropertyName);//根据列名设置默认值
fef.SetBinding(Selector.SelectedValueProperty, selectVal);
dataTemplate.VisualTree = fef;
column.CellTemplate = dataTemplate;
e.Column = column;
e.Column.Width = 100;
}

效果图:

WPF AutoGeneratingColumn 绑定下拉框的更多相关文章

  1. 奥展项目笔记07--vue绑定下拉框和checkbox总结

    1.vue绑定下拉框 <div class="col-md-1 data"> <select class="form-control " v- ...

  2. jquery easyui无法绑定下拉框内容

    最近在研究jquery easyui的DataGrid,发现DataGrid中的下拉框无法绑定值,找了很久也没发现是具体问题所在,最后还是同事帮忙搞定的.具体问题竟然是jquery easyui提供的 ...

  3. 绑定下拉框时避免触发SelectedIndexChanged事件

    在从数据库读取数据集绑定到下拉框时会立即触发其SelectedIndexChanged事件造成异常,可对其SelectedIndexChanged事件采取先解除后附加的方法解决. cmbXl_gt.V ...

  4. js绑定下拉框

    ---恢复内容开始--- 方法一 js-ajax部分 function GetDListOfCt() { $.ajax({ url: "../../Ajax/Boss_Show.ashx?t ...

  5. MVC4 绑定下拉框方法,解决编辑时不绑定值

    方法一  Controller 部分代码: public ActionResult Modify(int id) { //3.1.1 检查id //3.1.2根据id查询数据 Models.Stude ...

  6. Select级联菜单,用Ajax获取Json绑定下拉框(jQuery)

    需求类似这样  ↓ ↓ ↓   -->    菜单A发生变化,动态取数据填充下拉菜单B. JS代码如下: <script type="text/javascript"& ...

  7. c# wpf ComboBox 动态下拉框 及 动态默认值设定

    1.下拉框声明 <ComboBox x:Name="DirComboBox" Width="150" Height="18" Marg ...

  8. MVC联想查询绑定下拉框

    前言 在做搜索时,输入些内容时需要弹出下拉框给用户进行选择,极大的方便了用户,会给用户带来不一样的体验 Controller public ActionResult SSAC(string UserN ...

  9. .net简单页面后台绑定下拉框,按钮,分页 后台cs文件

    二.cs文件 using System;using System.Collections.Generic;using System.Web.UI;using System.Web.UI.WebCont ...

随机推荐

  1. rtsp的东西

    http://ubuntuforums.org/showthread.php?t=1544946 http://www.live555.com/liveCaster/liveInput.html ht ...

  2. (转)在Mac下使用OpenCV, 在Xcode下使用OpenCV (非常基础,详细)

    转自:http://blog.sciencenet.cn/home.php?COLLCC=3456986939&COLLCC=3456885714&mod=space&uid= ...

  3. spring集成guava的event bus

    Guava的event bus guava, https://github.com/google/guava 是一个非常有名的Java类库,提供了很多在日常开发中常用的集合.函数接口等.此外,guav ...

  4. clas

  5. Java开发常用代码

    1. 字符串有整型的相互转换 String a = String.valueOf(2); //integer to numeric string int i = Integer.parseInt(a) ...

  6. Java对象的强、软、弱和虚引用详解

    1.对象的强.软.弱和虚引用 转自:http://zhangjunhd.blog.51cto.com/113473/53092/ 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无 ...

  7. Mysql参数详解

    1.配置参数 MySQL有两种途径途径了解其的配置参数,一个是MySQL交互模式下的命令SHOW  VARIABLES,一个使用mysqladmin variables 查询. MySQL的配置参数分 ...

  8. RFC 文档(中文与英文)

    http://man.chinaunix.net/develop/rfc/default.htm https://www.rfc-editor.org/retrieve/ http://www.iet ...

  9. PureMVC(JS版)源码解析(十二):Facade类

    MVC设计模式的核心元素在PureMVC中体现为Model类.View类和Controller类.为了简化程序开发,PureMVC应用Facade模式.    Facade是Model\View\Co ...

  10. 照片浏览器软件-WTL开发的照片浏览器

    前段时间,为了准备情人节礼物,本人想了做一个照片浏览器送给女友,专门播放我俩的所有照片的一个程序软件,于是,就写了这么一个照片浏览器软件.本程序是基于WTL8.0开发的一个图片/照片浏览器,涉及到XM ...