WPF中的网格表

我需要创建一个网格。 它应该是可编辑的
我应该设置行数和列数。
例如

mygrid.RowCount = 3; mygrid.ColumnCount = 3; 

它应该是这样的:

在此处输入图像描述

如何将2D数组绑定到DataGrid?

您可以使用WPF DataGrid控件。 它显示一个单元格网格,对应于包含属性(列)的对象(行)集合。 您需要提供数据存储 – 一组对象。 集合中的对象数(集合计数)将确定网格中的行数。 DataGrid支持在UI中编辑数据。

此示例定义三列并将它们绑定到数据对象的A,B和C属性。

        

您需要将具有这些属性的对象集合(在代码中或使用数据绑定)分配给DataGrid的ItemsSource属性,就像使用任何其他ItemsControl一样。 像这样的东西:

 public partial class MainWindow: Window { public class DataObject { public int A { get; set; } public int B { get; set; } public int C { get; set; } } public MainWindow() { InitializeComponent(); var list = new ObservableCollection(); list.Add(new DataObject() { A = 6, B = 7, C = 5 }); list.Add(new DataObject() { A = 5, B = 8, C = 4 }); list.Add(new DataObject() { A = 4, B = 3, C = 0 }); this.dataGrid1.ItemsSource = list; } 

在编辑中心单元格时,结果如下所示:

WPF DataGrid

附注:WPF Grid类仅用于布局。 它不提供数据编辑支持。

这是创建使用Grid布置其项目的ItemsControl的一般技术。 在此示例(使用XML数据源)中, ItemsSource是具有RowColumnData属性的项的集合。

注意使用ItemContainerStyle 。 这是必要的,因为为了使Grid控件使用Grid.RowGrid.Column附加属性,必须将这些属性附加到插入到网格中的对象 – 如果您尝试在TextBox上设置ItemsTemplate是生成时,网格不会看到它们,因为它正在查看生成的ContentPresenter ,而不是它内部的TextBox