初始化DataGrid.Column

本文介绍了一个用于初始化DataGrid控件的方法,并演示了如何为DataGrid添加不同格式的列,包括设置列宽、对齐方式、只读属性等。此外,还提供了一个处理编辑操作的函数,用于开始或结束单元格的编辑状态。
using System;
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.ComponentModel;
using System.Drawing;
using System.IO;
using System.Xml;
namespace Common
{
 
 #region 初始化DataGrid.Column
 //======无dropdown列======//
 public class InitDataGridColumn
 {
  public InitDataGridColumn(){}
  public void init(CurrencyManager cM,ref DataGridTableStyle dGS,string col_id,string col_name,int col_len,string col_align,string col_fmt,string read_only)
  {
   PropertyDescriptor pD_1;
   DataGridTextBoxColumn tBC_1; 
   int oneChar=7;//Font("宋体",9);
 
   pD_1  = cM.GetItemProperties()[col_id];
   tBC_1 = new DataGridTextBoxColumn(pD_1,"G");
   
   tBC_1.MappingName = col_id;
   tBC_1.HeaderText  = col_name;
   tBC_1.Width       = oneChar*col_len;
   if(col_align=="Right") tBC_1.Alignment = HorizontalAlignment.Right;
   else if(col_align=="Center") tBC_1.Alignment = HorizontalAlignment.Center;
   if(col_fmt.Trim()!="") tBC_1.Format   = col_fmt;
   if(read_only=="true")  tBC_1.ReadOnly = true;
   tBC_1.NullText    = "";
   dGS.GridColumnStyles.Add(tBC_1);
  }
  public void AcceptText(ref DataGrid dG,ref CurrencyManager cM,string type)
  {
   //先结束当前编辑.   
   int r;
   r = dG.CurrentCell.RowNumber;        
   DataGridColumnStyle dgc = dG.TableStyles[0].GridColumnStyles[0];
   dG.EndEdit(dgc,r,false); 
  
   if(type=="Row") dG.BeginEdit(dgc,r);//继续编辑CurrentCell
   else  cM.EndCurrentEdit();//结束所有编辑.  
  }  
 }
 //======有dropdown列======//
 #endregion
<Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <TabControl Grid.Column="0"> <TabItem Header="振粉机数据"> <DataGrid x:Name="dataGrid1" ItemsSource="{Binding DataTableSQL}" AutoGenerateColumns="True" EnableRowVirtualization="True" EnableColumnVirtualization="True"></DataGrid> </TabItem> <TabItem Header="焊接筛选机检测"> <DataGrid ItemsSource="{Binding DataTableSQL}" AutoGenerateColumns="True" EnableRowVirtualization="True" EnableColumnVirtualization="True"></DataGrid> </TabItem> </TabControl> <TabControl Grid.Column="1"> <TabItem Header="人工测试台检测"> <DataGrid ItemsSource="{Binding DataTableSQL}" AutoGenerateColumns="True" EnableRowVirtualization="True" EnableColumnVirtualization="True"></DataGrid> </TabItem> <TabItem Header="视觉焊接机检测"> <DataGrid ItemsSource="{Binding DataTableSQL}" AutoGenerateColumns="True" EnableRowVirtualization="True" EnableColumnVirtualization="True"></DataGrid> </TabItem> </TabControl> <TabControl Grid.Column="2"> <TabItem Header="热电偶检测"> <DataGrid ItemsSource="{Binding DataTableSQL}" AutoGenerateColumns="True" EnableRowVirtualization="True" EnableColumnVirtualization="True"></DataGrid> </TabItem> <TabItem Header="人工检测台"> <DataGrid ItemsSource="{Binding DataTableSQL}" AutoGenerateColumns="True" EnableRowVirtualization="True" EnableColumnVirtualization="True"></DataGrid> </TabItem> </TabControl> <TabControl Grid.Column="3"> <!-- 可添加新的 TabItem 和 DataGrid --> </TabControl> <TabControl Grid.Column="4"> <!-- 可添加新的 TabItem 和 DataGrid --> </TabControl> <TabControl Grid.Column="5"> <!-- 可添加新的 TabItem 和 DataGrid --> </TabControl> </Grid> 选择的 有六个 数据只有一个页面
09-20
<Page x:Class="DiodeThermalTest.Pages.DataQueryPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:DiodeThermalTest.Pages" xmlns:oxy="http://oxyplot.org/wpf" mc:Ignorable="d" d:DesignHeight="600" d:DesignWidth="1100" Title="数据查询"> <Grid Margin="10"> <Grid.ColumnDefinitions> <ColumnDefinition Width="300"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <!-- 左侧文件列表 --> <StackPanel Grid.Column="0" Margin="0,0,10,0"> <StackPanel Orientation="Horizontal" Margin="0,0,0,10"> <TextBox x:Name="txtDataDirectory" Width="200" Margin="0,0,5,0"/> <Button x:Name="btnBrowseDirectory" Content="浏览..." Click="BtnBrowseDirectory_Click"/> <Button x:Name="btnRefreshFiles" Content="刷新" Margin="5,0,0,0" Click="BtnRefreshFiles_Click"/> </StackPanel> <TextBlock Text="测试数据文件列表" FontWeight="Bold" Margin="0,0,0,5"/> <ListBox x:Name="lstTdmsFiles" Margin="0,0,0,10" SelectionChanged="LstTdmsFiles_SelectionChanged"> <ListBox.ItemTemplate> <DataTemplate> <StackPanel> <TextBlock Text="{Binding FileName}" FontWeight="Bold"/> <TextBlock Text="{Binding TestDate}" FontSize="10"/> <TextBlock Text="{Binding Operator}" FontSize="10"/> </StackPanel> </DataTemplate> </ListBox.ItemTemplate> </ListBox> </StackPanel> <!-- 右侧数据展示 --> <TabControl Grid.Column="1"> <TabItem Header="测试信息"> <StackPanel Margin="10"> <TextBlock Text="基本信息" FontWeight="Bold" Margin="0,0,0,10"/> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="120"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <TextBlock Text="测试ID:" Grid.Row="0" Grid.Column="0"/> <TextBlock x:Name="txtTestId" Grid.Row="0" Grid.Column="1"/> <TextBlock Text="测试日期:" Grid.Row="1" Grid.Column="0"/> <TextBlock x:Name="txtTestDate" Grid.Row="1" Grid.Column="1"/> <TextBlock Text="操作员:" Grid.Row="2" Grid.Column="0"/> <TextBlock x:Name="txtOperator" Grid.Row="2" Grid.Column="1"/> <TextBlock Text="配方名称:" Grid.Row="3" Grid.Column="0"/> <TextBlock x:Name="txtRecipeName" Grid.Row="3" Grid.Column="1"/> <TextBlock Text="二极管数量:" Grid.Row="4" Grid.Column="0"/> <TextBlock x:Name="txtDiodeCount" Grid.Row="4" Grid.Column="1"/> </Grid> <TextBlock Text="Y=MX+B 拟合参数" FontWeight="Bold" Margin="0,15,0,10"/> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="120"/> <ColumnDefinition Width="120"/> <ColumnDefinition Width="120"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <TextBlock Text="斜率(M):" Grid.Row="0" Grid.Column="0"/> <TextBlock x:Name="txtFitSlope" Grid.Row="0" Grid.Column="1"/> <TextBlock Text="截距(B):" Grid.Row="0" Grid.Column="2"/> <TextBlock x:Name="txtFitIntercept" Grid.Row="0" Grid.Column="3"/> </Grid> </StackPanel> </TabItem> <TabItem Header="脉冲曲线"> <oxy:PlotView x:Name="plotPulseCurve" Model="{Binding PulseCurveModel}" Margin="10"/> </TabItem> <TabItem Header="温度曲线"> <oxy:PlotView x:Name="plotTemperatureCurve" Model="{Binding TempCurveModel}" Margin="10"/> </TabItem> <TabItem Header="温度-电压关系"> <oxy:PlotView x:Name="plotTempVoltage" Model="{Binding TempVoltageModel}" Margin="10"/> </TabItem> <TabItem Header="测试数据表格"> <DataGrid x:Name="dgTestData" AutoGenerateColumns="False" Margin="10"> <DataGrid.Columns> <DataGridTextColumn Header="步骤" Binding="{Binding StepNumber}"/> <DataGridTextColumn Header="目标温度(°C)" Binding="{Binding TargetTemperature}"/> <DataGridTextColumn Header="实际温度(°C)" Binding="{Binding ActualTemperature}"/> <DataGridTextColumn Header="电流(A)" Binding="{Binding Current}"/> <DataGridTextColumn Header="电压1(V)" Binding="{Binding VoltageDiode1}"/> <DataGridTextColumn Header="电压2(V)" Binding="{Binding VoltageDiode2}"/> <DataGridTextColumn Header="电压3(V)" Binding="{Binding VoltageDiode3}"/> <DataGridTextColumn Header="平均电压(V)" Binding="{Binding AverageVoltage}"/> </DataGrid.Columns> </DataGrid> </TabItem> </TabControl> </Grid> </Page> 这是刚刚后台代码对应的XAML代码
10-17
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值