简体   繁体   English

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

[英]Bind button to datagrid dynamically in WPF

I have DataGrid as below 我有如下的DataGrid

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

I am binding the data to DataGrid as below 我将数据绑定到DataGrid如下

Setvalue.ItemsSource = dataTable.DefaultView;

I want to generate buttton for each row dynamically.I have tried like this 我想动态地为每一行生成buttton。

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

I am getting error like "cannot convert from DataGridViewButtonColumn to DataGridColumn" . 我收到类似“无法从DataGridViewButtonColumn转换为DataGridColumn”的错误。 Please let me know any approach . 请让我知道任何方法。

Create a DataGridTemplateColumn with a CellTemplate in your XAML. 在XAML中使用CellTemplate创建一个DataGridTemplateColumn If you want it to be the last column, you could set the AutoGenerateColumns property to false and define all columns in the order you want them to appear: 如果希望它成为最后一列,则可以将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>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM