Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.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# WPF MVVM DataGrid空白单元格,分别定义标题_C#_Wpf_Xaml_Mvvm_Datagrid - Fatal编程技术网

C# WPF MVVM DataGrid空白单元格,分别定义标题

C# WPF MVVM DataGrid空白单元格,分别定义标题,c#,wpf,xaml,mvvm,datagrid,C#,Wpf,Xaml,Mvvm,Datagrid,我正在为我的公司写一个通用的导入工具。用户应该能够指定包含数据行/列的文件,如电子表格、制表符或逗号分隔值文件。加载文件不是问题;我将列标题和行数据存储到单独的列表中,因为我需要在导入逻辑的其余部分将它们分开 我希望能够在用户加载导入文件后向用户显示此数据。我认为DataGrid是我最好的选择 以下是我拥有的DataGrid的xaml: <DataGrid ItemsSource="{Binding Path=Rows}" AutoGenerateColumns="Tr

我正在为我的公司写一个通用的导入工具。用户应该能够指定包含数据行/列的文件,如电子表格、制表符或逗号分隔值文件。加载文件不是问题;我将列标题和行数据存储到单独的列表中,因为我需要在导入逻辑的其余部分将它们分开

我希望能够在用户加载导入文件后向用户显示此数据。我认为
DataGrid
是我最好的选择

以下是我拥有的DataGrid的xaml:

<DataGrid ItemsSource="{Binding Path=Rows}"
          AutoGenerateColumns="True"
          ScrollViewer.VerticalScrollBarVisibility="Auto"
          ScrollViewer.HorizontalScrollBarVisibility="Auto"
          Height="150" />

这是用户控件的一部分,用作主窗口中内容控件的静态资源。主窗口使用视图模型定位器设置此视图的数据上下文

但是,当我在视图模型中填充行并将标题作为集合中的第一个列表(这是一个
可观察集合
)时,标题和行为空,并且生成的列数不正确

问题1:为什么字符串没有显示在单元格中?
问题2:是否有一种方法可以将加载的头绑定到DataGrid,而不必首先将它们添加到Rows集合


谢谢

名单?不确定DG是否可以将其作为DC接受。通常,DG将绑定到模型集合,每个模型是每行的DataContext,并且模型的属性将绑定到每列中的单元格。此外,即使这样做了,这也永远不会起作用。您不能绑定到集合中的字符串并能够更新它(如果这是您的目标)。绑定不能在索引10的列表中用不可变实例A替换不可变实例B。这不是绑定的工作方式。对于绑定列,我将首先尝试类似于DataGrid的CustomDependencyProperty的东西,它接受一个集合,并基于该列表生成DataGrid的列。我对常规网格的RowCount和ColumnCount属性做了类似的操作,如果您想要一个示例的话,这些属性可能是类似的。唯一的问题是,您的头和BoundProperty可能必须命名相同,除非您实现了此DP所需的自定义类。