c# - 如何使用代码隐藏从 wpf C# 中的数据网格获取所有标题文本

标签 c# wpf datagrid

我想从 WPF 应用程序中的数据网格中获取所有标题文本。
可不可以?
我想获取所有标题文本,而不仅仅是一个标题文本。我想获取集合格式的所有标题文本。当我们从数据网格中获取项目时。
喜欢:
DataRowView 行 = (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

最佳答案

I want to get all header text in collection format

如果 List<string>你没问题,你可以在你的代码隐藏中这样做:

var HeaderTexts = dataGridUserSalesRep.Columns.Select(e => e.Header.ToString()).ToList();

关于c# - 如何使用代码隐藏从 wpf C# 中的数据网格获取所有标题文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50279736/

相关文章:

performance - 具有许多加载控件的 Silverlight 性能

c# - 如何使用 ASP.NET CORE 3 在 Linux (Debian) 上保存图像

c# - 如何将用户控件放入文档查看器中?

c# - 从 DataGridCell 获取控件

c# - 仅在 ListView 中选择一个

WPF窗口的背景颜色不是由样式自动设置的

datagrid - 使用 dojo 工具包的网格时如何使列不可排序?

c# - WiX:在卸载时正确删除非空的临时文件和文件夹

c# - 帮助理解 Enumerable.Join 方法

c# - 如何在 .Net WinForms 控件上绘制自定义边框