我基于this other question来显示一个包含一些列(还没有要填充的行,只有列)的DataGrid:
我有以下源码:
cs文件:
public partial class MainWindow : Window
{
private DataTable dt_main;
...
}
private ...first_Click(object sender, ...)
{
dt_main = new DataTable("dt_main"); // just a default name, no such table
DataGrid1.DataContext = dt_main.DefaultView;
}
private ...second_Click(object sender, ...)
{
dt_main.Columns.Clear();
...
while (...)
dt_main.Columns.Add(tmp_ColName);
}XAML文件:
<DataGrid x:Name="DataGrid1" ... AutoGenerateColumns="True" ItemsSource="{Binding}"/>我单击first_click (用于填充表的列表),然后单击second_click (用于选择表),但是尽管填充了数据表的Columns属性,但我在DataGrid中什么也看不到,正如您在以下屏幕截图中看到的那样( DataGrid由红色箭头显示):

有人知道我错过了什么吗?
发布于 2021-08-18 15:06:20
只有在实际设置了ItemsSource属性时,才会自动生成列。
可以在将列添加到DataTable后显式设置它,也可以将列添加到DataGrid
private ...second_Click(object sender, ...)
{
//add the columns to dt_main...
DataGrid1.ItemsSource = null;
DataGrid1.ItemsSource = dt_main.DefaultView;
}https://stackoverflow.com/questions/68834654
复制相似问题