将删除按钮添加到设置为自动生成列的数据网格



我在 WPF 中有一个数据网格,它从数据库表中自动生成它的列:

SqlConnection sqlCon = connect2DB();
SqlDataAdapter adapter.SelectCommand = new SqlCommand("SELECT * FROM myTable", sqlCon);
adapter.Fill(dataSet);
dataGrid1.ItemsSource = dataSet.Tables[0].DefaultView;

以下是我尝试将"删除"按钮添加到数据网格的地方:

<DataGrid AutoGenerateColumns="True" HName="dataGrid1" DataContext="{Binding}" ItemsSource="{Binding}" RowEditEnding="dataGrid1_RowEditEnding">
    <DataGridTemplateColumn Header="Actions" IsReadOnly="True">
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <Button Content="Remove Row" Command="Delete"/>
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
</DataGrid>

这不起作用,它说{"在使用ItemsSource之前,项目集合必须为空。

我还尝试了以下代码:

<DataGrid AutoGenerateColumns="True" ItemsSource="{Binding Src}" x:Name="Grid">
    <DataGrid.Columns>
        <DataGridCheckBoxColumn Header="Junk"></DataGridCheckBoxColumn>
    </DataGrid.Columns>
</DataGrid>

这有效,但它不会生成按钮,据我所知,您只能生成复选框、文本框或超链接。 如何生成按钮?

第一个示例应该可以工作,但您忘记了DataGrid.Columns。它应该是:

<DataGrid ...>
    <DataGrid.Columns>
        <DataGridTemplateColumn ...>

如果没有该 WPF,则假定您正在创建项

最新更新