我有基于类(ID,名称,代码,价格)的List,我试图将这些值添加到datagrid。问题是,datagrid仍然是空的,我的意思是这样的:
XAML
<DataGrid AutoGenerateColumns="False" Height="275" HorizontalAlignment="Left" Margin="337,51,0,0" Name="dataGridProducts" VerticalAlignment="Top" Width="403" Foreground="#FF803E3E">
<DataGrid.Columns>
<DataGridTextColumn Header="ID" Width="30" />
<DataGridTextColumn Header="Nazwa" Width="200" />
<DataGridTextColumn Header="Kod" Width="120" />
<DataGridTextColumn Header="Cena" Width="100" />
</DataGrid.Columns>
</DataGrid>
代码背后:
private void categoryListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
SqlConnection SqlConn = new SqlConnect().ConnectToSql();
using (SqlConn)
{
SqlConn.Open();
SqlCommand fillCategories = new SqlCommand("...", SqlConn);
SqlDataReader rdr1;
rdr1 = fillCategories.ExecuteReader();
while (rdr1.Read())
{
Products p = new Products(rdr1.GetInt32(rdr1.GetOrdinal("ID")), rdr1.GetString(rdr1.GetOrdinal("ProductName")), rdr1.GetString(rdr1.GetOrdinal("Barcode")), rdr1.GetString(rdr1.GetOrdinal("Price")));
completeProductList.Add(p);
}
}
dataGridProducts.ItemsSource = completeProductList;
}
有没有解决方法如何解决?
答案 0 :(得分:4)
您必须将列绑定到datagrid项Source
的类中的值实施例: 如果datagrid.ItemsSource是一个包含3列的表:
- ID
- Name
- Address
您必须将datagrid的每一列绑定到表的一列:
...
<DataGridTextColumn Header="ID" Binding="{Binding Path=ID}" Width="Auto" />
<DataGridTextColumn Header="Name" Binding="{Binding Path=Name}" Width="Auto" />
<DataGridTextColumn Header="Address" Binding="{Binding Path=Address}" Width="Auto" />
...
然后你会看到表格的界限值。