我的一个DataGrids存在问题,这让我感到茫然,因为我总是以这种方式做到这一点,而且它始终有效......
我的DataTable实现如下:
MyDataSets.Cash_TableData cashTable = new MyDataSets.Cash_TableData();
然后我通过以下方式填充一些数据:
cashTable = cashTableAdapter.GetDataByName(PersonsName);
一切正常。
我有一个包含以下内容的DataGrid:
<DataGrid x:Name="dataGrid" ItemsSource="{Binding}" HorizontalAlignment="Left" Margin="22,354,0,0" VerticalAlignment="Top" Height="282" Width="695" IsReadOnly="True"/>
我使用...填充DataGrid
dataGrid.DataContext = cashTable.DefaultView;
但是,当我这样做时,每列都显示正确的数据,除了第8列,其中显示&#34; System.Data.DataRowView&#34;。
我在第8列的DataTable中为每个项目做了一个Console.WriteLine,所有这些都是正确的。
是否需要使第8列正确显示?列类型是字符串。
感谢。
修改
现金表现在在下面。由于隐私原因,某些列名称已更改...
CREATE TABLE [dbo].[Cash Table] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[Name] NVARCHAR (MAX) NOT NULL,
[Gender] NVARCHAR (MAX) NULL,
[DOB] DATE NOT NULL,
[Address] NVARCHAR (MAX) NOT NULL,
[Address_Two] NVARCHAR (MAX) NOT NULL,
[Person_ID] NVARCHAR (MAX) NOT NULL,
[Transaction_Date] DATE NOT NULL,
[Item] NVARCHAR (MAX) DEFAULT ('Not recorded') NOT NULL,
[xxx] NVARCHAR (MAX) DEFAULT ('Not recorded') NULL,
[Amount] FLOAT (53) NOT NULL,
[xxx] NVARCHAR (MAX) NOT NULL,
[xxx] NVARCHAR (MAX) NOT NULL,
[xxx] NVARCHAR (MAX) NOT NULL,
[xxx] NVARCHAR (MAX) NOT NULL,
[xxx] BIT NOT NULL,
[xxx] NVARCHAR (MAX) NOT NULL,
[xxx] NVARCHAR (MAX) NOT NULL,
CONSTRAINT [PK_Table] PRIMARY KEY CLUSTERED ([Id] ASC)
);
答案 0 :(得分:3)
在MSDN论坛上查看此主题:
DataGrid单元格将'System.Data.DataRowView'作为值: https://social.msdn.microsoft.com/Forums/vstudio/en-US/c05b0ae2-86c5-4b14-9578-8e8f6d2e3175/datagrid-cell-has-systemdatadatarowview-as-a-value?forum=wpf
确保列的名称不包含空格。例如,这将使单元格值显示为“System.Data.DataRowView”:
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn(" ") { });
dt.Rows.Add("1");
dataGrid.ItemsSource = dt.DefaultView;
这有效:
dt.Columns.Add(new DataColumn("") { });
这导致一个空白单元格(注意列名称中的尾随空格):
dt.Columns.Add(new DataColumn("name ") { });
因此,尝试将第8列的名称(或列的索引)设置为没有空格的有效名称:
cashTable.Columns[0].ColumnName = "unique";
dataGrid.DataContext = cashTable.DefaultView;
答案 1 :(得分:0)
控制这3个案例,我认为该列是ComboBox,DropDownlist或具有Value属性的类似
1)未分配的列(或列控件)相关字段名称
2)列(或列控件)相关字段名称可能不正确
3)列(或列控件)相关字段名称有空格