
[英]WPF DataGrid: How do you iterate in a DataGrid to get rows and columns?
[英]How do you iterate and apply logic to rows in DataGrid
因此,我试图将计时器添加到新列“ Duration”中,该计时器减去开始的时间(它是date time
,并显示其已激活了多长时间。 到目前为止,这就是我所拥有的:
XAML:
<DataGridTextColumn Binding="{Binding BlockName}" Header="Block" Width="200"/>
<DataGridTextColumn Binding="{Binding Auditor}" Header="Auditor" Width="200"/>
<DataGridTextColumn Binding="{Binding AcctAuditor}" Header="Accounting Auditor" Width="200"/>
<DataGridTextColumn Binding="{Binding BlockLeader}" Header="Block Leader" Width="200"/>
<DataGridTextColumn x:Name="TimeStarted" Binding="{Binding TimeStarted}" Header="Started" Width="200"/>
<DataGridTextColumn x:Name="Duration" Header="Elapsed Time" Width="200"/>
背后的代码:
System.Windows.Threading.DispatcherTimer dispatcherTimer = new System.Windows.Threading.DispatcherTimer();
dispatcherTimer.Tick += dispatcherTimer_Tick;
dispatcherTimer.Interval = new TimeSpan(0, 0, 1);
dispatcherTimer.Start();
private void dispatcherTimer_Tick(object sender, EventArgs e)
{
foreach (DataRowView dr in BlockStatus.ItemsSource)
{
var diff = dr.Row.Field<DateTime>("TimeStarted").Subtract(DateTime.Now);
if (diff.TotalSeconds > 0)
{
dr.Row["Duration"] = string.Format("{0} d {1:D2}:{2:D2}:{3:D2}", diff.Days, diff.Hours, diff.Minutes, diff.Seconds);
}
else
{
dr.Row["Duration"] = "0 d 00:00:00";
}
}
}
我正在尝试在基于另一列的新列中使用mm:ss进行计数。
这是一张图片:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.