Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在WPF中将按钮动态绑定到datagrid_C#_Wpf_Datagrid - Fatal编程技术网

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

C# 在WPF中将按钮动态绑定到datagrid,c#,wpf,datagrid,C#,Wpf,Datagrid,我有如下DataGrid <DataGrid x:Name="Setvalue" Grid.Row="4" Grid.Column="6" AutoGenerateColumns="True"> </DataGrid> 我想动态地为每一行生成Button <DataGrid x:Name="Setvalue" Grid.Row="4" Grid.Column="6" AutoGenerateColumns="True"> </DataGrid>

我有如下
DataGrid

<DataGrid x:Name="Setvalue" Grid.Row="4" Grid.Column="6" AutoGenerateColumns="True">
</DataGrid>
我想动态地为每一行生成Button

<DataGrid x:Name="Setvalue" Grid.Row="4" Grid.Column="6" AutoGenerateColumns="True">
</DataGrid>
DataGridViewButtonColumn btn = new
DataGridViewButtonColumn();
btn.HeaderText = "Copy";
btn.Text = "Copy";
btn.UseColumnTextForButtonValue = true;
Imported.Columns.Add(btn);

我遇到了类似“无法从DataGridViewButtonColumn转换为DataGridColumn”的错误。请告诉我任何方法。

在XAML中使用
单元格模板创建
DataGridTemplateColumn
。如果要将其作为最后一列,可以将
AutoGenerateColumns
属性设置为
false
,并按照希望显示的顺序定义所有列:

<DataGrid x:Name="Setvalue" Grid.Row="4" Grid.Column="6" AutoGenerateColumns="True">
</DataGrid>
<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>


使用CellTemplate创建DataGridTemplateColumn。但是你为什么要用编程的方式来做这件事呢?谢谢mm8。如何在此处设置列索引。就像我希望复制列出现在末尾而不是开头一样。以及如何将每个按钮绑定到相应的行。请让我知道我不知道你说的“列索引”是什么意思?是否希望按钮列出现在其他列的中间?你想把它绑定到什么?我希望按钮列出现在最后,我的意思是那应该是最后一列。如果我点击那个按钮,我应该只能得到那一行的内容。我无法附加屏幕截图。我试过你的解决办法。“复制”列从一开始就出现了。不在末尾还有多少列?您不能在XAML标记中按照希望它们出现的顺序显式指定它们吗?