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. OJ题目分类

    POJ题目分类 | POJ题目分类 | HDU题目分类 | ZOJ题目分类 | SOJ题目分类 | HOJ题目分类 | FOJ题目分类 | 模拟题: POJ1006 POJ1008 POJ1013 P ...

  2. In Java, what is the default location for newly created files?

    If the current directory of the application. If e.g. you create a File by using new FileOutputStream ...

  3. 16个最棒的jQuery视差滚动效果教程

    今天我们整理了16个最棒的jQuery视差滚动效果教程 , 并附有演示地址,你可以快速的查看教程的效果,或者应用在自己的项目中.希望本文对想要学习或者使用jQuery视差效果的朋友有帮助,慢慢的欣赏吧 ...

  4. JDBC——事物管理

    案例:银行转账问题,数据库如下 相关API setAutoCommit(boolean autoCommit)  将此连接的自动提交模式设置为给定状态.设置事务是否自动提交如果设置为false,表示手 ...

  5. hdu 4523 威威猫系列故事——过生日 小模拟

    威威猫系列故事——过生日 Time Limit: 500/200 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total ...

  6. VWMare CentOS 6.5 静态IP设置

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGVmYXVsdDc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...

  7. Redis实战之Redis + Jedis[转]

    http://blog.csdn.net/it_man/article/details/9730605 2013-08-03 11:01 1786人阅读 评论(0) 收藏 举报   目录(?)[-] ...

  8. [ES7] Descorator: evaluated & call order

    When multiple decorators apply to a single declaration, their evaluation is similar to function comp ...

  9. PHP发送邮件类库PHPMailer的简单使用

    最近需要用到发送邮件的功能,原本是用PHP自带的mail()函数发送的.php mail()这个方法非常简单.方便.易用,但是除了网易邮箱.QQ邮箱.GMAIL邮箱等常用的邮箱可以收到之外,经测试HO ...

  10. [学习笔记]设计模式之Prototype

    写在前面 为方便读者,本文已添加至索引: 设计模式 学习笔记索引 在笔记Builder模式中,我们曾见到了最初用于创建平行世界的函数createWorld,并且它是Mage类的成员函数(毕竟是专属于魔 ...