public void NewRecord(Record r) { if (r == null) { return; } if (App.Server.GetProblemRelatedContest(r.ProblemID) != contestID) { return; } var item = new StatusListViewItem { ID = r.ID, Language = r.Language, MemoryUsage = r.MemoryUsage, TimeUsage = r.TimeUsage, ProblemTitle = r.ProblemTitle, Status = r.Status, SubmissionTime = r.SubmissionTime, UserNickName = r.UserNickName, Code = r.Code }; Dispatcher.Invoke(new Action(() => { StatusListViewItems.Insert(0, item); StatusListView.Items.Refresh(); })); }
public void RecordUpdated(int record_id) { System.Threading.Tasks.Task.Factory.StartNew(() => { var r = App.Server.GetRecord(record_id); if (r == null) { return; } int recordindex = StatusListViewItems.FindIndex(x => x.ID == record_id); if (recordindex == -1) { return; } var item = new StatusListViewItem { ID = r.ID, Language = r.Language, MemoryUsage = r.MemoryUsage, TimeUsage = r.TimeUsage, ProblemTitle = r.ProblemTitle, Status = r.Status, SubmissionTime = r.SubmissionTime, UserNickName = r.UserNickName, Code = r.Code }; Dispatcher.Invoke(new Action(() => { StatusListViewItems[recordindex] = item; StatusListView.Items.Refresh(); })); recordindex = QueryItems.FindIndex(x => x.ID == record_id); if (recordindex == -1) { return; } Dispatcher.Invoke(new Action(() => { QueryItems[recordindex] = item; StatusListView.Items.Refresh(); })); }); }
private void btnRejudge_Click(object sender, RoutedEventArgs e) { var id = (int)StatusListView.SelectedValue; var idx = StatusListView.SelectedIndex; App.Server.Rejudge(id); Record r = App.Server.GetRecord(id); StatusListViewItems[idx] = new StatusListViewItem { ID = r.ID, Language = r.Language, MemoryUsage = r.MemoryUsage, TimeUsage = r.TimeUsage, ProblemTitle = r.ProblemTitle, Status = r.Status, SubmissionTime = r.SubmissionTime, UserNickName = r.UserNickName, Code = r.Code }; StatusListView.Items.Refresh(); }