我有这个datagrid视图,其中直接通过与数据库的绑定来填充。
我从OleDbAdapter
类型的控制器中的数据库中获取数据,并在主窗口中检索它,并将其放置在数据网格视图中。之后,我使用EDIT
中的DELETE
添加了DataGridTemplateColumn
和Main Window.xaml
的按钮。
PROGRAM_CONTROLLER.CS
public OleDbDataAdapter GetProgramList()
{
OleDbDataAdapter da = null;
try
{
con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + Path + ";Persist Security Info=True";
if (con.State != ConnectionState.Open)
{
con.Open();
}
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = con;
cmd.CommandText = "select * from program";
return new OleDbDataAdapter(cmd);
}
catch(Exception ex)
{
return da;
}
finally
{
con.Close();
}
}
MAIN WINDOW.CS
Program_Controller _PController = new Program_Controller();
OleDbDataAdapter da = _PController.GetProgramList();
DataTable dt = new DataTable();
da.Fill(dt);
dataGridProgram.ItemsSource = dt.AsDataView();
MAIN WINDOW.XAML
<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>
当前输出结果显示EDIT
和DELETE
按钮在第一和第二列是这样的。
如何将它们移到行尾,如何将它们都放在一列中?
编辑: 我只希望按钮列在后面,其他应保持数据库中列的顺序
答案 0 :(得分:1)
'doc_date' => 'filled|date_format:d-m-Y'