Exemple #1
0
 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()));
 }
Exemple #2
0
        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;
        }