0

我有一个响应事件并将事件中的数据添加到“ListView”的应用程序,并且我有一个具有 3 个属性的简单类。

ListView 保存这些数据:

    public string Code { get; set; }
    public string Status { get; set; }
    public TimeAgo Time { get; set; }

TimeAgo 类是:

public class TimeAgo
{

    private DateTime _time;

    public TimeAgo(DateTime time) { _time = time; }

    public override string ToString()
    {
        return new TimeSpan(DateTime.Now.Ticks - _time.Ticks).Seconds + " seconds ago";
    }
}

所以,每当发生新事件时,我希望其他对象更新,所以如果我添加一个新对象,它会显示“0 秒前”,但旧的应该更新并说“15 秒前”,这样我就可以跟踪多长时间以前每个事件都在更新时发生。

我已经为此搜索了方法,但我尝试过的所有方法都没有奏效。

有任何想法吗?

4

2 回答 2

1

只需将 Seconds 设为您绑定的属性即可。

放在顶部

Insert(0, T item 

对于 ObservableCollection 中的所有项目调用 NotifyPropertyChanged("Seconds"); 插入后。

于 2012-05-14T20:47:36.447 回答
0

这似乎很简单的任务。“最新条目是第一” - 您可以简单地按 TimeAgo 订购您的数据源(但您必须实现 IComparable)

您是否使用 MVVM(您将其标记为 WPF)?如果是 - 只需使用 ObservableCollection 类作为 ListView DataSourse。也应该调查这个

于 2012-05-14T20:46:12.767 回答