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();
        }
Пример #3
0
        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;
        }
Пример #4
0
        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();
        }
Пример #5
0
        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;
        }