Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在WPF中单击按钮时将数据从文本框添加到DataGridView_C#_Wpf - Fatal编程技术网

C# 在WPF中单击按钮时将数据从文本框添加到DataGridView

C# 在WPF中单击按钮时将数据从文本框添加到DataGridView,c#,wpf,C#,Wpf,我的窗口有两个文本框,一个按钮和一个数据网格视图,当我单击该按钮时,数据网格视图需要显示文本框 这就是我到目前为止所拥有的: 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.Ro

我的窗口有两个
文本框
,一个
按钮
和一个
数据网格视图
,当我单击该按钮时,
数据网格视图
需要显示
文本框

这就是我到目前为止所拥有的:

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中实现这一点?

您必须将新项目(可以是匿名的)添加到
项目集合中

Eg


您必须将新项目(可以是匿名的)添加到
Items
集合中

Eg


定义datagrid列 并将数据绑定到相应的列上

<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>

定义datagrid列 并将数据绑定到相应的列上

<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>
<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 });
    }