C# datagridview列绑定类中类的属性

datagridview编辑列时,对于类中类的属性绑定,尝试了一下”类名.属性名“ 并没有正确绑定,后又尝试了几次无果,只能利用Linq来解决了,

首先,datagridview要绑定的是学生类(Student),而学生类里有老师类(Teacher)

 1 public class Student
 2 {
 3      public int Id;
 4       public Teacher teacher;
 5 }
 6
 7 public class Teacher
 8 {
 9      public string Name;
10 }

  正常是这样:datagridview.Datasource=List<Student>;  但是无法将列绑定 teacher.Name

 1 //
 2 List<Student> list=从某处得来的数据,比如数据库
 3
 4 // datagridview.DataSource=list  ;    此句改为如下
 5
 6 var list2=list.Select(s=>new {s.Id,    teacher_name=s.teacher.Name});    //转为匿名
 7
 8    datagridview.DataSource=list2.ToList();
 9
10   
 //最后再将 需要绑定的那一列的绑定 名称写为:teacher_name 。即可

  

为什要最后  ToList()?,因为,list2是 IEnumerable,是不能直接被datagridview绑定。

时间: 2024-10-20 07:26:01

C# datagridview列绑定类中类的属性的相关文章

C#.Net 给DataGridView列绑定数据和显示列名的方法

选择DataGridView控件,在属性中选择Colums属性项点击,编辑DataGridView控件的列,可以通过列编辑器添加多个列项,其中列属性的中HeadText是对外显示的,即向用户呈现的,Name是用于命名列对象的,而DataPropertyName是用于指定你将数据源的那一列绑定到该列上的,就是这个列属性可以DataGridView中的列绑定指定的数据,具体只需要将DataPropertyName列属性指定为数据源的某个列名即可,例如:数据源中一列为“UserName”,则将Data

wpf中如何在xaml中绑定cs中类的属性

cs代码:/// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); ContentGrid.DataContext = this; this.Path = "数据绑定"; } public string Path { get; set;

反射之取类中类的属性、变量名称及其值

类中类 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Reflection; 5 using System.Text; 6 using System.Threading.Tasks; 7 8 namespace 二重类嵌套取内层的属性变量名 9 { 10 public class Pro1 11 { 12 string name="张三"; 13 int n

Datagridview列绑定数据

属性最下面的Column项: 把每一列的字段绑定,更改显示的标题. 数据绑定代码: 1 string sql = "select IncomeExpendTypeID , TypeName , IncomeExpendTypeName , Remark from IncomeExpendType"; 2 3 this.dataGridView1.DataSource = shl.ExecuteDataTable(sql, CommandType.Text); *当然其中使用了SQLHe

Datagridview 列绑定

dataGridView1.Columns.Clear(); dataGridView1.Columns.Add("id", "id"); dataGridView1.Columns.Add("Dtime", "日期"); dataGridView1.Columns.Add("Product_name", "产品名称"); dataGridView1.Columns.Add("

C# 控制datagridview的combox属性的列绑定数据

//datagridvie列绑定list的数据 List<User> listChange = GetChange();//查询数据库内容,保存到list this.datagridview1.AutoGenerateColumns = false;//禁止生成不需要的列 this.datagridview1.DataSource = listChange;//list的内容绑定到datagridview Gender.DataSource = listChange;//list的内容绑定到d

[WinForm] DataGridView绑定DataTable,ComboBox列绑定Dictionary

一  需求介绍 一般像枚举类型的数据,我们在数据库里存储着诸如(1.2.3.4-)或者("001"."002"."003"-)此类,但是界面上我们想要显示的是具体的文本内容,以便用户理解使用.所以在从数据库中加载出来的数据DataTable绑定到DataGridView上时,就需要其中一些枚举列采用下拉框,并绑定对应的枚举数据源. 二  具体实现 首先,如果 DataGridView 的 AutoGenerateColumns 为 true 时,

WPF{ComboBox绑定类对象, 下拉列显示的值,与取到的值}

DisplayMemberPath 是用来显示下拉列表的值 SelectedValuePath是用来取得选中项的值. ComboBox绑定类对象, 下拉列显示的值,与取到的值 string. Join的作用 输出结果是

WPFS数据绑定(要是后台类对象的属性值发生改变,通知在“client界面与之绑定的控件值”也发生改变须要实现INotitypropertyChanged接口)

WPFS数据绑定(要是后台类对象的属性值发生改变,通知在"client界面与之绑定的控件值"也发生改变须要实现INotitypropertyChanged接口) MainWindow.xaml <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="