在WPF中将按钮动态绑定到datagrid

时间:2018-08-10 12:18:32

标签: c# wpf datagrid

我有DataGrid如下

<DataGrid x:Name="Setvalue" Grid.Row="4" Grid.Column="6" AutoGenerateColumns="True">
</DataGrid>

我将数据绑定到DataGrid,如下所示

Setvalue.ItemsSource = dataTable.DefaultView;

我想为每一行动态生成按钮。我已经尝试过了

DataGridViewButtonColumn btn = new
DataGridViewButtonColumn();
btn.HeaderText = "Copy";
btn.Text = "Copy";
btn.UseColumnTextForButtonValue = true;
Imported.Columns.Add(btn);

我收到类似“无法从DataGridViewButtonColumn转换为DataGridColumn”的错误。请让我知道任何方法。

1 个答案:

答案 0 :(得分:1)

在XAML中使用DataGridTemplateColumn创建一个CellTemplate。如果希望它成为最后一列,则可以将AutoGenerateColumns属性设置为false并按照希望它们出现的顺序定义所有列:

<DataGrid x:Name="Setvalue" Grid.Row="4" Grid.Column="6" AutoGenerateColumns="False">
    <DataGrid.Columns>
        <DataGridTextColumn Binding="{Binding Name}" Header="Name" />
        <DataGridTextColumn Binding="{Binding Type}" Header="Type" />
        <DataGridTextColumn Binding="{Binding Place}" Header="Place" />
        <DataGridTemplateColumn>
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <Button Content="Copy" />
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>