我在 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,则假定您正在创建项