在WPF中单击按钮时,将数据从文本框添加到DataGridView
本文关键字:文本 添加 DataGridView 数据 WPF 单击 按钮 | 更新日期: 2023-09-27 18:00:59
我的窗口有两个TextBox
、一个Button
和一个DataGridView
,当我点击按钮时,DataGridView
需要显示TextBox
的值
这就是我现在所拥有的:
private void btn_Click(object sender, RoutedEventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("id");
dt.Columns.Add("name");
DataRow dr = null;
if (dt.Rows.Count > 0)
{
dr = dt.NewRow();
dt.Rows.Add(txt1.Text, txt2.Text);
grid1.ItemsSource = dt.DefaultView;
}
}
在这种情况下,DataGrid
的行会得到更新,但不会逐个添加值!
有没有办法在WPF中实现这一点?
您必须将新Item(可以是匿名的(添加到Items
集合中。
例如;
<DataGrid x:Name="Dgrd" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="ID" Binding="{Binding ID}"/>
<DataGridTextColumn Header="NAME" Binding="{Binding NAME}"/>
</DataGrid.Columns>
</DataGrid>
代码
private void Button_Click(object sender, RoutedEventArgs e)
{
Dgrd.Items.Add(new { ID = IDTextbox.Text, NAME = NAMETextbox.Text });
}
定义数据网格列并将数据绑定到相应的列上
<Grid>
<TextBox x:Name="txt1" HorizontalAlignment="Left" Height="23" Margin="44,32,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/>
<TextBox x:Name="txt2" HorizontalAlignment="Left" Height="23" Margin="204,32,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/>
<Button Content="Button" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75" Margin="231,75,0,0" Click="Button_Click"/>
<DataGrid x:Name="grid1" HorizontalAlignment="Left" Margin="44,138,0,0" VerticalAlignment="Top" Height="139" Width="280">
<DataGrid.Columns>
<DataGridTextColumn Header="ID" Binding="{Binding ID}"/>
<DataGridTextColumn Header="NAME" Binding="{Binding NAME}"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
背后的代码
private void Button_Click(object sender, RoutedEventArgs e)
{
grid1.Items.Add(new { ID = txt1.Text, NAME = txt2.Text });
}