Как получить весь текст заголовка из сетки данных в wpf C #, используя код позади - PullRequest
0 голосов
/ 10 мая 2018

Я хочу получить весь текст заголовка из сетки данных в приложении WPF.
Это возможно или нет?
Я хочу получить весь текст заголовка, а не только один текст заголовка. Я хочу получить весь текст заголовка в формате коллекции. Как мы получаем элементы из таблицы данных.
Как:
DataRowView row = (DataRowView)dataGridUserSalesRep.Items.GetItemAt(0);

XAML:

  <DataGrid x:Name="dataGridUserSalesRep" TextElement.FontStretch="Normal"  FontSize="12"    FontWeight="DemiBold" ColumnWidth="100" RowHeight="50" Height="568" HorizontalAlignment="Left"  VerticalAlignment="Top" Width="1136" FontFamily="Arial" Background="White" AutoGenerateColumns="False" IsReadOnly="True" ColumnHeaderHeight="40" HorizontalGridLinesBrush="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" VerticalGridLinesBrush="{DynamicResource {x:Static SystemColors.ControlDarkDarkBrushKey}}" ClipboardCopyMode="IncludeHeader">
                        <DataGrid.BorderBrush>
                            <LinearGradientBrush  EndPoint="0.5,1" StartPoint="0.5,0">
                                <GradientStop Color="Black" Offset="0"/>
                                <GradientStop Color="#FF28689F" Offset="0.033"/>
                            </LinearGradientBrush>
                        </DataGrid.BorderBrush>
                        <DataGrid.Columns  >
                            <DataGridTextColumn x:Name="currDG"  Binding="{Binding curr}" FontWeight="Normal"  Width="120" ClipboardContentBinding="{x:Null}" Header="Currency">
                                <DataGridTextColumn.ElementStyle>
                                    <Style>
                                        <Setter Property="TextBlock.TextWrapping"  Value="Wrap"/>
                                    </Style>
                                </DataGridTextColumn.ElementStyle>
                            </DataGridTextColumn>

                            <DataGridTextColumn Binding="{Binding profit}" x:Name="totalProfitDG" FontWeight="Normal" Width="160" ClipboardContentBinding="{x:Null}" Header="Total Profit">
                                <DataGridTextColumn.ElementStyle>
                                    <Style>
                                        <Setter Property="TextBlock.TextWrapping"  Value="Wrap"/>
                                    </Style>
                                </DataGridTextColumn.ElementStyle>
                            </DataGridTextColumn>

                            <DataGridTextColumn   Binding="{Binding sale}"  x:Name="totalSaleDG"  FontWeight="Normal" Width="160" ClipboardContentBinding="{x:Null}" Header="Total Sale">
                                <DataGridTextColumn.ElementStyle>
                                    <Style>
                                        <Setter Property="TextBlock.TextWrapping"  Value="Wrap"/>
                                    </Style>
                                </DataGridTextColumn.ElementStyle>
                            </DataGridTextColumn>
                            <DataGridTextColumn x:Name="agentDG"  Binding="{Binding agent}"  FontWeight="Normal" Width="210" ClipboardContentBinding="{x:Null}" Header="Agent">
                                <DataGridTextColumn.ElementStyle>
                                    <Style>
                                        <Setter Property="TextBlock.TextWrapping"  Value="Wrap"/>
                                    </Style>
                                </DataGridTextColumn.ElementStyle>
                            </DataGridTextColumn>

                            <DataGridTextColumn  x:Name="customerNameDG" Binding="{Binding client}"  FontWeight="Normal" Width="210" ClipboardContentBinding="{x:Null}" Header="Customer Name">
                                <DataGridTextColumn.ElementStyle>
                                    <Style>
                                        <Setter Property="TextBlock.TextWrapping"  Value="Wrap"/>
                                    </Style>
                                </DataGridTextColumn.ElementStyle>
                            </DataGridTextColumn>

                            <DataGridTextColumn  x:Name="dateDG" Binding="{Binding date}"  FontWeight="Normal" Width="120" ClipboardContentBinding="{x:Null}" Header="Date" >
                                <DataGridTextColumn.ElementStyle>
                                    <Style>
                                        <Setter Property="TextBlock.TextWrapping"  Value="Wrap"/>
                                    </Style>
                                </DataGridTextColumn.ElementStyle>
                            </DataGridTextColumn>

                            <DataGridTextColumn x:Name="idDG" Binding="{Binding id}"   FontWeight="Normal"  Width="100" Header="S.Inv" />
                        </DataGrid.Columns>

                    </DataGrid>

Код позади:

    private DataTable dataTable;
    MySqlDataAdapter mySqlAdaptor;
    private MySqlCommand cmd;
    MySqlDataReader dataReader;

private void displayDataGrideSalesReport()
        {

        string    con = "SERVER=localhost;PORT=3306;DATABASE=salaamhost;UID=root;PASSWORD='';allow zero datetime=true;SslMode=none";

             var   myconection = new MySqlConnection();
             myconection.ConnectionString = con;
                cmd = myconection.CreateCommand();
                cmd.CommandType = CommandType.Text;



            cmd.CommandText = "SELECT sales.sale_id as id,sales.datetime as date ,sales.cash_sale_client_name as client, users.first_name AS agent , sales.grand_total as sale ,sales.profit  ,sales.currency as curr  FROM sales,users WHERE sales.agent_id = users.user_id group by  sales.sale_id ORDER BY sales.sale_id";

            myconection.Open();
            cmd.ExecuteNonQuery();
            dataTable = new DataTable();
            mySqlAdaptor = new MySqlDataAdapter(cmd);
            mySqlAdaptor.Fill(dataTable);
            dataGridUserSalesRep.ItemsSource = dataTable.AsDataView();
  }

См. Изображение ниже. Я хочу получить значения зеленого прямоугольника, используя код позади.

enter image description here

1 Ответ

0 голосов
/ 10 мая 2018

Я хочу получить весь текст заголовка в формате коллекции

Если с вами все в порядке List<string>, вы можете просто сделать это в своем коде:

var HeaderTexts = dataGridUserSalesRep.Columns.Select(e => e.Header.ToString()).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...