【问题标题】:Creating a multiple layer DataGridView in C#在 C# 中创建多层 DataGridView
【发布时间】:2020-07-08 10:52:05
【问题描述】:

我正在做一个项目,我以编程方式创建了一个大小为 (n,m) 的网格视图。表格内容(不是从数据源手动输入的)如下所示:列(第 1 周、第 2 周等),每周都有总工作时间、成本、效率等行条目。

我的想法是何时使用 Datagridview1.CellDoubleClick(..) 事件单击每周列的第一个单元格,表格将查看该周的日期,因此表格列标题将变为(星期一,星期二,. ..等),表中的数据会发生变化。

到目前为止,它是可以实现的。我还在“天”表中创建了一个单元格,其值为“返回”,应该切换回每周表。但我不知道如何在它们之间切换。到目前为止,我所做的是单向开关。

例子:

private TabItem Table(){

Table = new forms.DataGridView();
Table.BackgroundColor =drawing.Color.FromArgb(255, 34, 116, 172); 
//..Here table entries are made for weekly data view

Table .CellDoubleClick += delegate (object sender, forms.DataGridViewCellEventArgs args)
               {
                var senderGrid = (forms.DataGridView)sender;

              //if a cell in a certain week in clicked it should switch to weekly view

              if (senderGrid.CurrentCell.RowIndex == 0 && 
                        senderGrid.CurrentCell.OwningColumn.HeaderText.Contains("Week"))
                   {
                   //Clear Old table and redraw new Columns and rows with (daily) data inputs

                   }
                    
                   //*****Help Needed Here***// I want to go back to weekly view when a cell with 
                    //value "back" is double pressed

                    if (senderGrid.CurrentCell.Value.ToString() == ("<- Back"))
                   {
                   ***//Go back to weekly view***
                   }
                   };
}
}

非常感谢任何想法!

【问题讨论】:

  • 最好的方法是将源数据放在一个 DataTable 中,另外还有两个表用于 Weekly Data 和 Daily Data。然后只需将 DGV 数据源设为每周表或每日表即可。
  • @jdweng 希望你一切顺利!感谢您再次回答我的问题。我想了想,还是想不通。我将对这种方法做更多的研究。非常感谢。
  • @jdweng 试过了,确实很有魅力!谢谢你。这个问题已经回答了。

标签: c# wpf datagridview


【解决方案1】:

@jdweng 回答。

通过拥有多个数据源,它可以很容易地被 datagridview 事件操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 2019-08-30
    相关资源
    最近更新 更多