我想从 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();
}
请参见下图。我想使用隐藏代码获取绿色矩形值。
最佳答案
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/