【发布时间】: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