C# datagrid wpf中没有显示任何内容
我正在使用datagrid视图。数据被添加到表中,从“监视”窗口中,我可以看到表中包含1行,但datagrid中没有显示任何内容 代码如下:C# datagrid wpf中没有显示任何内容,c#,wpf,C#,Wpf,我正在使用datagrid视图。数据被添加到表中,从“监视”窗口中,我可以看到表中包含1行,但datagrid中没有显示任何内容 代码如下: DataTable PopulateDataGrids(DataGrid grid, List<RetrievedEmailData> data) { DataTable table = new DataTable(); table.Columns.Add("Sr No");
DataTable PopulateDataGrids(DataGrid grid, List<RetrievedEmailData> data)
{
DataTable table = new DataTable();
table.Columns.Add("Sr No");
table.Columns.Add("Company Name");
table.Columns.Add("Email");
int count = 0;
DataRow row;
foreach (RetrievedEmailData item in data)
{
count++;
row = table.NewRow();
row["Sr No"] = count.ToString();
row["Company Name"] = item.Name;
row["Email"] = item.Email;
table.Rows.Add(row);
}
return table;
}
XAML标记:
<DataGrid AutoGenerateColumns="True" Height="322" HorizontalAlignment="Left" Margin="6,6,0,0" Name="dataGridBoatCompanyList" VerticalAlignment="Top" Width="500" />
如果看不到数据网格的XAML定义,很难判断,但也许你是有意的
dataGridBoatCompanyList.ItemsSource = PopulateDataGrids(dataGridBoatCompanyList, boat);
如果看不到DataGrid的XAML定义,很难说出来,但也许你是有意的
dataGridBoatCompanyList.ItemsSource = PopulateDataGrids(dataGridBoatCompanyList, boat);
尝试将
ItemsSource=“{Binding}”
添加到网格中
<DataGrid DataContext="{Binding}" AutoGenerateColumns="True" Height="322" HorizontalAlignment="Left" Margin="6,6,0,0" Name="dataGridBoatCompanyList" VerticalAlignment="Top" Width="500" />
编辑:
如果我试试这个
void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
dataGridBoatCompanyList.ItemsSource =
new ObservableCollection<RetrievedEmailData>(new[]
{
new RetrievedEmailData
{Email = "dfsd", Name = "fadsfds"}
});
}
void主窗口\u已加载(对象发送器,路由目标)
{
dataGridBoatCompanyList.ItemsSource=
新的可观测集合(新[]
{
新检索的电子邮件数据
{Email=“dfsd”,Name=“fadsfds”}
});
}
及
我有一个这样的填充列表
尝试将
ItemsSource=“{Binding}”
添加到网格中
<DataGrid DataContext="{Binding}" AutoGenerateColumns="True" Height="322" HorizontalAlignment="Left" Margin="6,6,0,0" Name="dataGridBoatCompanyList" VerticalAlignment="Top" Width="500" />
编辑:
如果我试试这个
void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
dataGridBoatCompanyList.ItemsSource =
new ObservableCollection<RetrievedEmailData>(new[]
{
new RetrievedEmailData
{Email = "dfsd", Name = "fadsfds"}
});
}
void主窗口\u已加载(对象发送器,路由目标)
{
dataGridBoatCompanyList.ItemsSource=
新的可观测集合(新[]
{
新检索的电子邮件数据
{Email=“dfsd”,Name=“fadsfds”}
});
}
及
我有一个这样的填充列表
添加了“我的XML”,更改您所说的内容时出错,无法将类型“System.Data.DataTable”隐式转换为“System.Collections.IEnumerable”。存在显式转换(是否缺少转换?)在更改您所说的内容时添加了my XML,这会产生错误。无法将类型“System.Data.DataTable”隐式转换为“System.Collections.IEnumerable”。存在显式转换(是否缺少强制转换?)使用您的方法观察到DataContext包含数据,但它仍然没有显示up@Afnan请尝试在XAML和代码隐藏中使用usint ItemsSource而不是DataContext。我现在也填充了它。请您帮我解释一下ObservableCollection的概念。就像到目前为止,我一直使用datatable和所有这些东西来填充网格,但我很喜欢这样,这是如何在一个网格中完成工作的line@Afnan这是一个很好的MSDN。示例代码是用VB编写的,但非常简单。使用您的方法o观察到DataContext包含数据,但它仍然没有显示up@Afnan尝试在XAML和代码隐藏中使用usint ItemsSource而不是DataContext。我现在也填充了它。我能请你帮我解释一下ObservableCollection的概念吗?比如直到现在,我总是使用datatable和所有这些东西来填充网格,但我很喜欢这种在一个网格中完成工作的方式line@Afnan这是一个很好的MSDN。示例代码是用VB编写的,但非常简单。