public PagedDocumentViewModel() { PageSource = new PagedAsyncSource { ElementType = typeof(T), PageNavigationMode = PageNavigationMode.ArbitraryWithTotalPageCount }; PageSource.FetchPage += (s, e) => { int page = (e.Skip / e.Take) + 1; e.Result = FetchRows(page, e.CancellationToken); }; PageSource.GetTotalSummaries += (s, e) => { for (int i = 0; i < e.Summaries.Length; i++) { if (e.Summaries[i].SummaryType == SummaryType.Count) { e.Result = Task.FromResult(new object[] { PageCount }); } } }; }
public MainWindow() { InitializeComponent(); var source = new PagedAsyncSource { ElementType = typeof(EntityFrameworkIssues.Issues.Issue), KeyProperty = nameof(EntityFrameworkIssues.Issues.Issue.Id), PageNavigationMode = PageNavigationMode.ArbitraryWithTotalPageCount }; source.FetchPage += OnFetchPage; source.GetTotalSummaries += OnGetTotalSummaries; grid.ItemsSource = source; LoadLookupData(); }
public MainWindow() { InitializeComponent(); var source = new PagedAsyncSource() { ElementType = typeof(IssueData) }; Unloaded += (o, e) => { source.Dispose(); }; source.FetchPage += (o, e) => { e.Result = FetchRowsAsync(e); }; grid.ItemsSource = source; }
public MainWindow() { InitializeComponent(); using (var session = new Session()) { var classInfo = session.GetClassInfo <XPOIssues.Issues.Issue>(); var properties = classInfo.Members .Where(member => member.IsPublic && member.IsPersistent) .Select(member => member.Name) .ToArray(); _DetachedObjectsHelper = DetachedObjectsHelper <XPOIssues.Issues.Issue> .Create(classInfo.KeyProperty.Name, properties); } var source = new PagedAsyncSource { CustomProperties = _DetachedObjectsHelper.Properties, KeyProperty = nameof(XPOIssues.Issues.Issue.Oid), PageNavigationMode = PageNavigationMode.ArbitraryWithTotalPageCount }; source.FetchPage += OnFetchPage; source.GetTotalSummaries += OnGetTotalSummaries; grid.ItemsSource = source; LoadLookupData(); }
public MainWindow() { InitializeComponent(); var source = new PagedAsyncSource() { ElementType = typeof(IssueData), PageNavigationMode = PageNavigationMode.ArbitraryWithTotalPageCount, }; Unloaded += (o, e) => { source.Dispose(); }; source.FetchPage += (o, e) => { e.Result = FetchRowsAsync(e); }; source.GetUniqueValues += (o, e) => { if (e.PropertyName == "Priority") { var values = Enum.GetValues(typeof(Priority)).Cast <object>().ToArray(); e.Result = Task.FromResult(values); } else { throw new InvalidOperationException(); } }; source.GetTotalSummaries += (o, e) => { e.Result = GetTotalSummariesAsync(e); }; grid.ItemsSource = source; }