Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.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# 选中复选框时将列表添加到数据网格_C#_Wpf_Xaml - Fatal编程技术网

C# 选中复选框时将列表添加到数据网格

C# 选中复选框时将列表添加到数据网格,c#,wpf,xaml,C#,Wpf,Xaml,我的WPF不流利。我在数据网格视图中有一个列表,在数据网格之外还有一个复选框。我需要有一个输出,当选中复选框时,它将向Datagrid添加另一行。这是我的密码 .cs 我的Xaml 这是我的输出。当复选框被选中时,数据将出现在我放置红色的空间上 您可以在XAML的复选框中添加选中的事件,如下所示 <CheckBox x:Name="a1" Grid.Column="0" HorizontalAlignment="Right"

我的WPF不流利。我在数据网格视图中有一个列表,在数据网格之外还有一个复选框。我需要有一个输出,当选中复选框时,它将向Datagrid添加另一行。这是我的密码

.cs

我的Xaml

这是我的输出。当复选框被选中时,数据将出现在我放置红色的空间上


您可以在XAML的复选框中添加选中的事件,如下所示

<CheckBox x:Name="a1"   Grid.Column="0" HorizontalAlignment="Right" Checked="A1_Checked"/>

您可以在选中的事件处理程序中向DataTable插入新行,如下所示:

private void CheckBox_Checked(object sender, RoutedEventArgs e)
{
    DataView dv = dataGrid2.ItemsSource as DataView;
    DataRow newRow = dv.Table.NewRow();
    newRow[0] = "";
    newRow[1] = "";
    newRow[2] = "";
    newRow[3] = "";
    newRow[4] = "";
    newRow[5] = "";
    dv.Table.Rows.InsertAt(newRow, 1);
}

你好,先生。这不管用,先生。它说dt2在当前上下文中不存在。它说System.ArgumentException:“Column'description'不属于表。”这可以工作,但它会在表中创建另一列。它不会像我所附的图片那样插入空格行。@angel1108:为什么它会创建另一列?它会创建另一行。您可以将该行的列值设置为您想要的任何值。我是说行对不起。我的意思是划船。它将在我包围的空间中添加另一行未插入。@angel1108:在我的示例中,它将在索引1处插入该行。您可以将第二个参数更改为要将其插入的任何索引。
<CheckBox x:Name="a1"   Grid.Column="0" HorizontalAlignment="Right" Checked="A1_Checked"/>
private void A1_Checked(object sender, System.Windows.RoutedEventArgs e)
        {
            var row =(dataGrid.ItemsSource as DataView).ToTable().AsEnumerable().Where(x => string.IsNullOrWhiteSpace(Convert.ToString(x["Description"]))).FirstOrDefault();
            if (row != null)
            {
                row["Description"] = "Add whatever you want";
                row["Unit"] = "Add whatever you want";
                ....

                 dataGrid2.ItemsSource = dt2.DefaultView;
            }
        }
private void CheckBox_Checked(object sender, RoutedEventArgs e)
{
    DataView dv = dataGrid2.ItemsSource as DataView;
    DataRow newRow = dv.Table.NewRow();
    newRow[0] = "";
    newRow[1] = "";
    newRow[2] = "";
    newRow[3] = "";
    newRow[4] = "";
    newRow[5] = "";
    dv.Table.Rows.InsertAt(newRow, 1);
}