Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.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# 对于直接从数据库检索的数据网格视图,如何将“编辑”和“删除”按钮放在末尾列?_C#_Wpf_Xaml_Datagridview_Datagrid - Fatal编程技术网

C# 对于直接从数据库检索的数据网格视图,如何将“编辑”和“删除”按钮放在末尾列?

C# 对于直接从数据库检索的数据网格视图,如何将“编辑”和“删除”按钮放在末尾列?,c#,wpf,xaml,datagridview,datagrid,C#,Wpf,Xaml,Datagridview,Datagrid,我有一个datagrid视图,其中直接由数据库绑定填充 我以OleDbAdapter类型从controller中的数据库获取数据,并在主窗口中检索数据,然后将其放置在数据网格视图中。之后,我在Main Window.xaml中使用DataGridTemplateColumn添加编辑和删除按钮 程序控制器 主窗口.CS MAIN WINDOW.XAML 当前输出结果显示编辑和删除按钮位于第一列,第二列如下所示 如何将它们移到行的后端,以及如何将它们都放在一列中 编辑:I 我只希望按钮列在后面,其他

我有一个datagrid视图,其中直接由数据库绑定填充

我以OleDbAdapter类型从controller中的数据库获取数据,并在主窗口中检索数据,然后将其放置在数据网格视图中。之后,我在Main Window.xaml中使用DataGridTemplateColumn添加编辑和删除按钮

程序控制器

主窗口.CS

MAIN WINDOW.XAML

当前输出结果显示编辑和删除按钮位于第一列,第二列如下所示

如何将它们移到行的后端,以及如何将它们都放在一列中

编辑:I
我只希望按钮列在后面,其他的应该按照数据库中的列顺序进行

@UsmanAli我编辑了这个问题。使用FlowDirection将反转所有列。但我特别希望buttons列位于末尾,但其他列保持顺序,紧跟在数据库列之后……AutoGenerateColumns=True是否有必要?因为我没有定义任何列标题,直接从数据库获取所有内容,所以我认为有必要。当我把它变成假的时候,什么也没说出来…谢谢你说出来。但是我也试过了,是的,按钮移到了最后一行,但是所有单元格中的数据都没有显示出来。Binding={Binding ProgramI}而不是program我把你的coulmn名称放在这里,你的意思是和数据库的列名完全一样吗?哦,现在它工作了。谢谢我现在就接受这个答案。但不知何故,我注意到,与前一个相比,使用该代码加载数据网格需要更长的时间。你知道为什么吗?在创建stackpanel或grid中,同时按下两个按钮
<DataGrid
        Name="dataGridProgram"
        AlternatingRowBackground="#FFA3A3A3"
        AutoGenerateColumns="False"
        Background="#FF969696"
        BorderBrush="Gray"
        BorderThickness="0,0,0,0"
        CanUserAddRows="False"
        CanUserResizeColumns="True"
        ColumnHeaderHeight="40"
        DataContext="{Binding}"
        FontSize="15"
        Foreground="Black"
        GridLinesVisibility="All"
        ItemsSource="{Binding}"
        RowBackground="#FFCECDCD">
        <DataGrid.Columns>
            <DataGridTextColumn
                Width="60"
                Binding="{Binding ProgramI}"
                Header="ID"
                IsReadOnly="True"
                Visibility="Visible" />
            <DataGridTextColumn
                Width="60"
                Binding="{Binding ProgramType}"
                Header="Type"
                IsReadOnly="True"
                Visibility="Visible" />
            <DataGridTextColumn
                Width="60"
                Binding="{Binding ProgramPath}"
                Header="Path"
                IsReadOnly="True"
                Visibility="Visible" />
            <DataGridTemplateColumn Header="Edit">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <Button
                            x:Name="btnEdit"
                            Width="75"
                            Height="Auto"
                            Margin="10"
                            Click="btnEdit_Click"
                            Content="Edit" />
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
            <DataGridTemplateColumn Header="Delete">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <Button
                            x:Name="btnDelete"
                            Width="75"
                            Height="Auto"
                            Margin="10"
                            Click="btnDelete_Click"
                            Content="Delete" />
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
        </DataGrid.Columns>
    </DataGrid>
Program_Controller _PController = new Program_Controller();
OleDbDataAdapter da = _PController.GetProgramList();
DataTable dt = new DataTable();
da.Fill(dt);
dataGridProgram.ItemsSource = dt.AsDataView();
<WrapPanel Margin="20,0,20,20" HorizontalAlignment="Center">
    <DataGrid AutoGenerateColumns="True" Name="dataGridProgram" SelectionMode="Single" FontSize="15" BorderThickness="1" IsReadOnly="true" Height="300" Width="700">
        <DataGrid.Columns>
            <DataGridTemplateColumn>
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <Button x:Name="btnEdit" Content="Edit" Height="Auto" Width="75" Margin="10" Click="btnEdit_Click"/>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
            <DataGridTemplateColumn>
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                       <Button x:Name="btnDelete" Content="Delete" Height="Auto" Width="75" Margin="10" Click="btnDelete_Click"/>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
        </DataGrid.Columns>
     </DataGrid>
</WrapPanel>
<DataGrid
        Name="dataGridProgram"
        AlternatingRowBackground="#FFA3A3A3"
        AutoGenerateColumns="False"
        Background="#FF969696"
        BorderBrush="Gray"
        BorderThickness="0,0,0,0"
        CanUserAddRows="False"
        CanUserResizeColumns="True"
        ColumnHeaderHeight="40"
        DataContext="{Binding}"
        FontSize="15"
        Foreground="Black"
        GridLinesVisibility="All"
        ItemsSource="{Binding}"
        RowBackground="#FFCECDCD">
        <DataGrid.Columns>
            <DataGridTextColumn
                Width="60"
                Binding="{Binding ProgramI}"
                Header="ID"
                IsReadOnly="True"
                Visibility="Visible" />
            <DataGridTextColumn
                Width="60"
                Binding="{Binding ProgramType}"
                Header="Type"
                IsReadOnly="True"
                Visibility="Visible" />
            <DataGridTextColumn
                Width="60"
                Binding="{Binding ProgramPath}"
                Header="Path"
                IsReadOnly="True"
                Visibility="Visible" />
            <DataGridTemplateColumn Header="Edit">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <Button
                            x:Name="btnEdit"
                            Width="75"
                            Height="Auto"
                            Margin="10"
                            Click="btnEdit_Click"
                            Content="Edit" />
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
            <DataGridTemplateColumn Header="Delete">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <Button
                            x:Name="btnDelete"
                            Width="75"
                            Height="Auto"
                            Margin="10"
                            Click="btnDelete_Click"
                            Content="Delete" />
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
        </DataGrid.Columns>
    </DataGrid>