Как поместить кнопки «РЕДАКТИРОВАТЬ» и «УДАЛИТЬ» в конечные столбцы для представления таблицы данных, полученного непосредственно из базы данных? - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть это представление таблицы данных, в котором заполняется непосредственно из привязки с базой данных.

Я получаю данные из базы данных в контроллере типа 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находятся в первом и втором столбце, как это.

Current table for data grid view

Как я могу переместить их в конец строки и как поместить их обоих втолько один столбец?

РЕДАКТИРОВАТЬ: Я хочу только столбец кнопок на задней панели, другие должны оставаться в соответствии с последовательностью столбцов в базе данных

1 Ответ

0 голосов
/ 19 февраля 2019
<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...