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