C# DataGrid和数组之间的双向绑定
我有一个数组,名为:C# DataGrid和数组之间的双向绑定,c#,wpf,arrays,datagrid,C#,Wpf,Arrays,Datagrid,我有一个数组,名为: string[,] TableData; 我可以使用绑定将其内容链接到DataGrid控件吗 如果可能,我希望用户能够编辑网格并反映阵列中的更改。您不能将矩阵绑定到数据网格。但是,根据您试图实现的目标,您可以将其转换为类的数组 矩阵的内容是什么?你为什么不试试这样的 public class MyClass { public string A { get; set; } public string B { get; set; } public M
string[,] TableData;
我可以使用绑定将其内容链接到DataGrid控件吗
如果可能,我希望用户能够编辑网格并反映阵列中的更改。您不能将矩阵绑定到
数据网格。但是,根据您试图实现的目标,您可以将其转换为类的数组
矩阵的内容是什么?你为什么不试试这样的
public class MyClass
{
public string A { get; set; }
public string B { get; set; }
public MyClass(string a, string b)
{
Debug.Assert(a != null);
Debug.Assert(b != null);
this.A = a;
this.B = b;
}
}
然后实例化如下内容:
MyClass[] source = { new MyClass("A", "B"), new MyClass("C", "D") };
this.dataGrid.ItemsSource = source;
或者,如果无法修改源的类型,请尝试使用LINQ进行投影:
var source = (from i in Enumerable.Range(0, matrix.GetLength(0))
select new MyClass(matrix[i, 0], matrix[i, 1])).ToList();
this.dataGrid1.ItemsSource = source;
见这个问题:
您可以使用名为DataGrid2D
()。要使用它,只需添加对DataGrid2DLibrary.dll的引用,请添加此命名空间
xmlns:dg2d="clr-namespace:DataGrid2DLibrary;assembly=DataGrid2DLibrary"
然后创建DataGrid2D并将其绑定到IList、2D数组或1D数组,如下所示
<dg2d:DataGrid2D Name="dataGrid2D"
ItemsSource2D="{Binding Int2DList}"/>
用户将能够编辑数据,并且在DataGrid
中所做的更改将反映在2D数组中最简单的方法应该是使用内置WPF DataGrid并将数组投影到将绑定的视图类
是否希望用户能够添加行?如果是,由于无法添加行,无法绑定到数组
如果有任意数量的列,则应该能够将数组投影到动态对象,并将datagrid的AutoGenerateColumns属性设置为true。您的列有名称吗?这里的问题是,我的矩阵可以有任意数量的列/行。这对我来说很好——我有固定数量的列。我使用了索引器,以便可以将其作为数组或数据绑定列表进行访问rows@ThanksMeleak,我一直在读这篇文章,但我感兴趣的是用2D数组填充数据网格,而不是组件网格。@Jaime Oro:更新了我的答案。我在以前的一个项目中有相同的需求,并创建了一个子类DataGrid
,您可以尝试完美地工作!谢天谢地!我希望用户能够添加行和列。科尔斯没有名字。