public static IssueData CreateIssue() { return(new IssueData( subject: GetSubject(), user: GetFrom(), created: DateTime.Today.AddDays(-rnd.Next(30)), votes: rnd.Next(100), priority: OutlookDataGenerator.GetPriority())); }
public MainWindow() { InitializeComponent(); var source = new InfiniteAsyncSource() { ElementType = typeof(IssueData) }; Unloaded += (o, e) => { source.Dispose(); }; var getSourceTask = Task.Run(() => { return(Enumerable .Range(0, 10000000) .Select(i => OutlookDataGenerator.CreateIssue()) .ToList()); }); source.FetchRows += (o, e) => { e.Result = FetchRows(e, getSourceTask); }; source.GetTotalSummaries += (o, e) => { e.Result = GetTotalSummaries(e, getSourceTask); }; source.GetUniqueValues += (o, e) => { if (e.PropertyName == "Priority") { e.Result = Task.FromResult(Enum.GetValues(typeof(Priority)).Cast <object>().ToArray()); } else { throw new InvalidOperationException(); } }; grid.ItemsSource = source; }