private FoxePageTreeViewItem CreateExapndablePageTreeItem(FoxePage foxePage) { FoxePageTreeViewItem item = new FoxePageTreeViewItem(foxePage); //item.Items.Add(new FoxeProcessingTreeViewItem()); if (foxePage.Products.Count >= 1) { item.Items.Add(new FoxeProcessingTreeViewItem()); } return(item); }
private async Task UsrExapandedPageTreeViewItem(FoxePageTreeViewItem item) { if ((item.Items.Count == 1) && (item.Items[0] is FoxeProcessingTreeViewItem)) { if (item.Tag is FoxePage) { var foxePage = item.Tag as FoxePage; // Expanding Page --(should give)--> Products await AddProductsUnderPage(item, foxePage); } } }
private async void foxeTreeView_Expanded(object sender, RoutedEventArgs e) { if (e.Source is FoxeCategoryTreeViewItem) { FoxeCategoryTreeViewItem item = e.Source as FoxeCategoryTreeViewItem; await UsrExapandedCategoryTreeViewItem(item); } if (e.Source is FoxePageTreeViewItem) { FoxePageTreeViewItem item = e.Source as FoxePageTreeViewItem; await UsrExapandedPageTreeViewItem(item); } }
private async Task AddProductsUnderPage(FoxePageTreeViewItem pageTreeViewItem, FoxePage foxePage) { var synchronizationContext = TaskScheduler.FromCurrentSynchronizationContext(); var cancellationToken = new CancellationToken(); await Task.Factory.StartNew(() => { pageTreeViewItem.Items.Clear(); foreach (var foxeProduct in foxePage.Products) { var productTreeViewItem = new FoxeProductTreeViewItem(foxeProduct); productTreeViewItem.Tag = foxeProduct; pageTreeViewItem.Items.Add(productTreeViewItem); } }, cancellationToken, TaskCreationOptions.None, synchronizationContext); }