【问题标题】:How to get all header text from datagrid in wpf C# using code behind如何使用后面的代码从 wpf C# 中的数据网格中获取所有标题文本
【发布时间】:2018-05-10 18:55:39
【问题描述】:

我想从 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();
  }

见下图。我想使用后面的代码获取绿色矩形值。

【问题讨论】:

  • 代码? XAML?你能给我们一些吗?
  • 不,我不想使用 XAML。我知道我们可以给名称一个标题并获取这些标题的文本。但我想以集合形式获取所有标题。因此,我正在创建报告。我想使用代码获取所有标题。当我们获取所有项目时。
  • 是的,但是您可以发布您用来定义此表的任何内容吗?
  • 我有邮政编码。

标签: c# wpf datagrid


【解决方案1】:

我想获取集合格式的所有标题文本

如果List&lt;string&gt; 对您没问题,您可以在您的代码隐藏中执行此操作:

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

【讨论】:

  • @MuhammadMehdi 很高兴我能提供帮助,最好的问候!
猜你喜欢
  • 2020-01-14
  • 2021-11-05
  • 2015-12-20
  • 2015-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-13
相关资源
最近更新 更多