Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DataGrid和数组之间的双向绑定_C#_Wpf_Arrays_Datagrid - Fatal编程技术网

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
,您可以尝试完美地工作!谢天谢地!我希望用户能够添加行和列。科尔斯没有名字。