所以我有一个数据网格,每行都有一个时间戳,时间戳是每天和每周的每个小时。我在重新安排数据网格以使其只有星期一至星期五和上午8点至下午3点的时间戳时遇到麻烦。有谁知道如何重新排列列以仅获取星期一至星期五(上午8点至下午3点)的时间? Datagrid
try
{
var endTimeInclusive = DateTime.UtcNow;
var startTimeInclusive =
endTimeInclusive.Subtract(TimeSpan.FromHours(hours));
var bars = client.ListMinuteAggregatesAsync(symbol,
startTimeInclusive, endTimeInclusive).Result;
this.Invoke(new Action(delegate ()
{
foreach (var bar in bars.Items)
{
alpaGrid.Rows.Add(bar.Time.ToString(), symbol,
bar.Open, bar.High, bar.Low, bar.Close, bar.Volume);
}
}));
}
答案 0 :(得分:1)
for(int i = 0; i < alpaGrid.Rows; i++)
{
DataGridViewRow row = alpaGrid.Rows[i];
DateTime date = Convert.ToDateTime(row["Timestamp"].Value); //"Timestamp" is your column name
if(date < .....)
row.Visible = false;
else
row.Visible = true;
}
这样,您将只从dataGridView隐藏行而不删除它。稍后,如果您只想执行相同的循环但不做任何检查row.Visible = true;
,则将所有行设置为可见。
另一种方法是使用行过滤,但是不确定如何工作,因为我仅在用dgv.DataSource = ...
填充dataGridView时才使用它。
如果您想尝试一下,请查看this question