我在WPF中有一个datagrid,它从数据库表中自动生成它的列:
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>
这不起作用,它说 {“Items集合在使用ItemsSource之前必须为空。”}
我也尝试了以下代码:
<DataGrid AutoGenerateColumns="True" ItemsSource="{Binding Src}" x:Name="Grid">
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="Junk"></DataGridCheckBoxColumn>
</DataGrid.Columns>
</DataGrid>
哪个有效,但它没有生成按钮,据我所知,您只能生成复选框,文本框或超链接。如何生成按钮?
答案 0 :(得分:2)
第一个例子应该有效,但你忘了DataGrid.Columns
。它应该是:
<DataGrid ...>
<DataGrid.Columns>
<DataGridTemplateColumn ...>
没有WPF假定您正在创建项目