尝试在WPF中绑定DataTable
时,第一列值未在DataGrid
中显示。
Code
private DataTable _dt;
public DataTable DataTable
{
get { return _dt; }
set { _dt = value; }
}
public Controls()
{
InitializeComponent();
_dt = new DataTable("Table");
_dt.Columns.Add("S.No");
_dt.Columns.Add("Name");
for (int i = 1; i <= 10; i++)
{
_dt.Rows.Add(""+i, "Name "+ i);
}
dataGrid1.DataContext = _dt;
}
XAML
<DataGrid AutoGenerateColumns="True"
Height="131"
ItemsSource="{Binding}"
HorizontalAlignment="Left"
Name="dataGrid1"
VerticalAlignment="Top"
Width="359" />
答案 0 :(得分:2)
将_dt.Columns.Add("S.No");
替换为_dt.Columns.Add("S_No");
或_dt.Columns.Add("S-No");
。
答案 1 :(得分:2)
列的名称不能包含点或空格字符,DataBinding
不支持сolumn名称中的点。这不是全面的,不仅仅是在DataGrid AutoGenerateColumns
中,而是绑定系统中的任何地方。
尝试将S.No
更改为只读No
,如以下代码所示:
_dt = new DataTable("Table");
_dt.Columns.Add("No");
_dt.Columns.Add("Name");
DataRow dr = _dt.NewRow();
for (int i = 1; i <= 10; i++)
{
_dt.Rows.Add(""+i, "Name "+ i);
}
dataGrid1.DataContext = _dt;