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 で DataSource を注文するだけです (ただし、IComparable を実装する必要があります)。

MVVM を使用していますか (WPF としてタグ付けしました)。はいの場合 - ObservableCollection クラスを ListView DataSourse として使用します。これも調べるべし

于 2012-05-14T20:46:12.767 に答える