如何在DataGrid WPF中添加行



我不知道如何将内容从数据库写入DataGrid。这是代码代码数据网格

<DataGrid AutoGenerateColumns="False" x:Name="ColorsTable" HorizontalGridLinesBrush="DarkGray"
RowBackground="LightGray" AlternatingRowBackground="White" Grid.ColumnSpan="2" Margin="0,0,624.2,0">
<DataGrid.Columns>
<DataGridTextColumn Header="ID" Binding="{Binding Path = Id}" Width="100" />
<DataGridTextColumn Header="Name" Binding="{Binding Path = Name}" Width="100" />
<DataGridTextColumn Header="Specification" Binding="{Binding Path = Specification}" Width="100" />
</DataGrid.Columns>
</DataGrid>

代码添加

ObservableCollection<SomeAbstact> temp = new ObservableCollection<SomeAbstact>();
sqlCommand = new SqlCommand("SELECT * FROM [Colors]", SqlConnection);
reader = await sqlCommand.ExecuteReaderAsync();
while (await reader.ReadAsync())
{
temp.Add(new Colors()
{
Id = Convert.ToInt32(reader["Id"]),
Name = reader["Name"].ToString(),
Specification = reader["Description"].ToString()
});
}
ColorsTable.ItemsSource = temp;
temp.Clear();
reader.Close();

实体添加

public class Colors: SomeAbstact
{
public int Id { get; set; }
public string Name { get; set; }
public string Specification { get; set; }
}

您可以将DataGrid绑定到ObservableCollection,如下所示:

<DataGrid ItemsSource="{Binding temp}">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Id}"/>
<DataGridTextColumn Binding="{Binding Name}"/>
<DataGridTextColumn Binding="{Binding Specification}"/>
</DataGrid.Columns>
</DataGrid>

只有正确设置了DataContext,这才会起作用。此外,如果您想在WPF中使用绑定,还应该了解如何实现INotifyPropertyChanged

最新更新