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 Grid类仅用于布局。 它不提供数据编辑支持。
这是创建使用Grid
布置其项目的ItemsControl
的一般技术。 在此示例(使用XML数据源)中, ItemsSource
是具有Row
, Column
和Data
属性的项的集合。
注意使用ItemContainerStyle
。 这是必要的,因为为了使Grid
控件使用Grid.Row
和Grid.Column
附加属性,必须将这些属性附加到插入到网格中的对象 – 如果您尝试在TextBox
上设置ItemsTemplate
是生成时,网格不会看到它们,因为它正在查看生成的ContentPresenter
,而不是它内部的TextBox
。