1、AutoGenerateColumns:是否自动生成列;
CanUserAddRows:是否允许用户增加行数据,当值为true时,在DataGrid最下面有一行空白行。
IsReadOnly:是否允许对整个表格或某些列进行修改。
DataGridComboBoxColumn列没有Name属性,通过x:Name="自定义列名"实现;
没有Binding属性,通过SelectedItemBinding="{Binding XXXX}"实现。
2、实例运行。
2.1、创建一个Employee类。
1 class Employee 2 { 3 public string Name { set; get; } 4 public int Age { set; get; } 5 public bool Gender { set; get; } 6 public string DeptName { set; get; } 7 }
2.2、在XMAL内对DataGrid控件的属性进行设置。
1 <DataGrid IsReadOnly="True" AutoGenerateColumns="False" CanUserAddRows="False" Height="200" HorizontalAlignment="Left" Margin="44,12,0,0" Name="dg1" VerticalAlignment="Top" Width="391" > 2 <DataGrid.Columns> 3 <DataGridTextColumn Header="姓名" Binding="{Binding Name}" Width="100"></DataGridTextColumn> 4 <DataGridTextColumn Header="年龄" Binding="{Binding Age}" Width="50"></DataGridTextColumn> 5 <DataGridCheckBoxColumn Header="性别" Binding="{Binding Gender}" Width="50"></DataGridCheckBoxColumn> 6 <DataGridComboBoxColumn Header="部门" SelectedItemBinding="{Binding DeptName}" x:Name="colDeptName" Width="100"></DataGridComboBoxColumn> 7 </DataGrid.Columns> 8 </DataGrid>
2.3、对DataGrid进行数据绑定。
1 private void Window_Loaded(object sender, RoutedEventArgs e) 2 { 3 List<Employee> employee = new List<Employee>(); 4 employee.Add(new Employee() { Name = "张三", Age = 18, Gender = true, DeptName = "开发部" }); 5 employee.Add(new Employee() { Name = "李四", Age = 19, Gender = true, DeptName = "开发部" }); 6 employee.Add(new Employee() { Name = "王五", Age = 20, Gender = false, DeptName = "测试部" }); 7 employee.Add(new Employee() { Name = "赵六", Age = 21, Gender = true, DeptName = "市场部" }); 8 9 List<string> deptname = new List<string>(); 10 deptname.Add("开发部"); 11 deptname.Add("测试部"); 12 deptname.Add("市场部"); 13 14 15 dg1.ItemsSource = employee; 16 colDeptName.ItemsSource = deptname; 17 }
2.4、运行结果。

浙公网安备 33010602011771号