相关疑难解决方法(0)

Windows 窗体中的数据注释支持

我想在 Windows 窗体应用程序 (WinForms) 中的类和实体上使用数据注释。我使用 windows DataGridViews 和 Infragistics UltraGrids。我之前已经成功使用该[DisplayName("Name to Display")]属性在 DataGridView/UltraGrid 上设置列标题文本。

这是非常有益的,因为我可能有几个网格显示这个类,而不是配置每个网格来显示适当的标题文本,我可以简单地设置一个数据注释。

我还想使用以下数据注释:

  • 展示
  • [显示(自动生成字段=假)]
    • 不显示此列
  • [显示(订单=N)]
    • 将此列显示为网格中的第 n 列
  • 显示列
  • [DisplayColumn("ColumnName")]
    • 如果此对象是另一个对象的属性,则显示此列值而不是对象类型
  • 显示格式
  • [DisplayFormat(DataFormatString="{0:formatstring}")]
    • 使用指定的格式字符串格式化数据
  • 数据类型
  • [数据类型(数据类型.货币)]
    • 以默认本地货币格式将数据显示为货币

例子

给定以下带注释的数据类:

public class Item
{
    //Specifies that the column should not be displayed
    [Display(AutoGenerateField = false)] 
    public int ItemID { get; set; }

    //Specifies that the column should be the 1st column in the datagridview
    [Display(Order = 1)]
    public int Name { get; set; } …
Run Code Online (Sandbox Code Playgroud)

.net c# winforms data-annotations

9
推荐指数
2
解决办法
3445
查看次数

设置具有对象 DataSource 的 DataGridView 中自动生成的列的格式

我想DataGridView根据我的自定义类自动创建所有列。每件事都按其应有的方式工作,但我需要的是格式化和对齐单元格值。

那么是否有一个属性可以添加到我的字段(HeightMeter)中,以便它可以根据需要对齐和格式化。要在手动列创建代码中执行此操作,您将使用以下命令:

DataGridViewColumn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
DataGridViewColumn.DefaultCellStyle.Format = "N2";
Run Code Online (Sandbox Code Playgroud)

如何在使用 AutoGenerateColumns 解决方案时指定 DefaultCellStyle 属性 - 注意我仅限于使用 .net 2 :(

这是我需要的和我得到的示例:

public partial class Form1 : Form
{
  private List<Person> people = new List<Person>();
  private DataGridView dataGridView1 = new DataGridView();
  private DataGridView dataGridView2 = new DataGridView();
  public Form1()
  {
    InitializeComponent();
    dataGridView1.Dock = DockStyle.Top;
    dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;

    dataGridView2.Dock = DockStyle.Top;
    dataGridView2.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;

    Controls.Add(dataGridView2);
    Controls.Add(dataGridView1);

    Load += new EventHandler(Form1_Load);
    Text = "";
  }

  private void Form1_Load(object sender, EventArgs e)
  {
    PopulateLists(); …
Run Code Online (Sandbox Code Playgroud)

c# datagridview .net-2.0 winforms

2
推荐指数
1
解决办法
2519
查看次数

标签 统计

c# ×2

winforms ×2

.net ×1

.net-2.0 ×1

data-annotations ×1

datagridview ×1