private List <IVirtualizable> GetMoreOtherVideoItems() { List <IVirtualizable> virtualizableList = new List <IVirtualizable>(); IVideoCatalogItemUCFactory catalogItemFactory = ServiceLocator.Resolve <IVideoCatalogItemUCFactory>(); VKList <VKClient.Common.Backend.DataObjects.Video> otherVideos = this.OtherVideosVM.OtherVideos; List <Group> groupList = new List <Group>(); List <User> userList = new List <User>(); if (otherVideos.profiles != null) { userList.AddRange((IEnumerable <User>)Enumerable.Select <User, User>(otherVideos.profiles, (Func <User, User>)(profile => new User() { id = profile.id, first_name = profile.first_name, last_name = profile.last_name }))); } if (otherVideos.groups != null) { groupList.AddRange((IEnumerable <Group>)Enumerable.Select <Group, Group>(otherVideos.groups, (Func <Group, Group>)(profile => new Group() { id = profile.id, name = profile.name }))); } IEnumerator <VKClient.Common.Backend.DataObjects.Video> enumerator = ((IEnumerable <VKClient.Common.Backend.DataObjects.Video>)Enumerable.Skip <VKClient.Common.Backend.DataObjects.Video>(otherVideos.items, 3)).GetEnumerator(); try { while (enumerator.MoveNext()) { VKClient.Common.Backend.DataObjects.Video video = enumerator.Current; List <User> knownUsers = userList; List <Group> knownGroups = groupList; UCItem ucItem = new UCItem(480.0, new Thickness(), (Func <UserControlVirtualizable>)(() => { UserControlVirtualizable controlVirtualizable = catalogItemFactory.Create(video, knownUsers, knownGroups, StatisticsActionSource.video_recommend, this.CreateVideoContext(otherVideos.context)); ((System.Windows.Controls.Panel)(controlVirtualizable as CatalogItemUC).GridLayoutRoot).Background = ((Brush)(Application.Current.Resources["PhoneNewsBackgroundBrush"] as SolidColorBrush)); return(controlVirtualizable); }), new Func <double> (() => catalogItemFactory.Height), null, 0.0, false); virtualizableList.Add((IVirtualizable)ucItem); } } finally { if (enumerator != null) { enumerator.Dispose(); } } return(virtualizableList); }
public GroupVideosPage() { this.InitializeComponent(); this.BuildAppBar(); this.ucHeader.Title = CommonResources.Profile_Videos.ToUpperInvariant(); this.ucHeader.OnHeaderTap = (Action)(() => this.virtPanel.ScrollToBottom(false)); this.ucPullToRefresh.TrackListBox((ISupportPullToRefresh)this.virtPanel); this.virtPanel.OnRefresh = (Action)(() => this.VM.VideosGenCol.LoadData(true, false, (Action <BackendResult <VKList <VKClient.Common.Backend.DataObjects.Video>, ResultCode> >)null, false)); this.virtPanel.InitializeWithScrollViewer((IScrollableArea) new ViewportScrollableAreaAdapter(this.scroll), false); this.RegisterForCleanup((IMyVirtualizingPanel)this.virtPanel); this.scroll.BindViewportBoundsTo((FrameworkElement)this.stackPanel); this.virtPanel.CreateVirtItemFunc = (Func <object, IVirtualizable>)(obj => (IVirtualizable) new UCItem(480.0, new Thickness(), (Func <UserControlVirtualizable>)(() => { UserControlVirtualizable controlVirtualizable = (UserControlVirtualizable)null; if (obj is OwnerHeaderWithSubscribeViewModel) { controlVirtualizable = (UserControlVirtualizable)this._virtControlsPool.GetFromPool <OwnerHeaderWithSubscribeUC>(); } if (obj is SectionHeaderViewModel) { controlVirtualizable = (UserControlVirtualizable)this._virtControlsPool.GetFromPool <SectionHeaderUC>(); } if (obj is AlbumsListHorizontalViewModel) { controlVirtualizable = (UserControlVirtualizable)this._virtControlsPool.GetFromPool <CatalogItemsHorizontalExtUC>(); } if (obj is VideoHeader) { controlVirtualizable = (UserControlVirtualizable)this._virtControlsPool.GetFromPool <CatalogItemUC>(); (controlVirtualizable as CatalogItemUC).GridLayoutRoot.Background = (Brush)(Application.Current.Resources["PhoneNewsBackgroundBrush"] as SolidColorBrush); } controlVirtualizable.DataContext = obj; return(controlVirtualizable); }), (Func <double>)(() => { if (obj is OwnerHeaderWithSubscribeViewModel) { return(68.0); } if (obj is SectionHeaderViewModel) { return(80.0); } if (obj is AlbumsListHorizontalViewModel) { return(242.0); } return(obj is VideoHeader ? 128.0 : 0.0); }), (Action <UserControlVirtualizable>)(uc => this._virtControlsPool.AddBackToPool(uc)), 0.0, false)); }
private void ShowHideOverlay(int ind, bool show) { if (this._isMessage) { return; } VirtualizableImage virtImageByInd = this.FindVirtImageByInd(ind); UCItem ucItem = (virtImageByInd != null ? virtImageByInd.OverlayControl : null) as UCItem; UserControlVirtualizable controlVirtualizable = ucItem != null ? ucItem.UC : null; if (controlVirtualizable == null) { return; } ((UIElement)controlVirtualizable).Opacity = (show ? 1.0 : 0.0); }
private List <IVirtualizable> GenereateVirtualizableItemsToAdd() { List <IVirtualizable> virtualizableList = new List <IVirtualizable>(); if (!this._commentsAreLoaded) { LikesInfo likesInfo1 = new LikesInfo(); likesInfo1.count = this.VM.LikesCount; likesInfo1.repostsCount = this.VM.RepostsCount; List <long> likesAllIds = this.VM.LikesAllIds; List <UserLike> m0List = (likesAllIds != null ? Enumerable.ToList <UserLike>(Enumerable.Select <long, UserLike>(likesAllIds, (Func <long, UserLike>)(uid => new UserLike() { uid = uid }))) : null) ?? new List <UserLike>(); likesInfo1.users = ((List <UserLike>)m0List); LikesInfo likesInfo2 = likesInfo1; double width1 = 480.0; Thickness margin1 = new Thickness(); LikedObjectData objectData = new LikedObjectData(); objectData.OwnerId = this.VM.OwnerId; objectData.ItemId = this.VM.ItemId; objectData.Type = (int)this.VM.LikeObjectType; LikesInfo likesInfo3 = likesInfo2; int num1 = this.VM.CanRepost ? 1 : 0; int num2 = this.VM.UserLiked ? 1 : 0; User loggedInUser = AppGlobalStateManager.Current.GlobalState.LoggedInUser; List <User> users = this.VM.Users; this._likesItem = new LikesItem(width1, margin1, objectData, likesInfo3, num1 != 0, num2 != 0, loggedInUser, users); virtualizableList.Add((IVirtualizable)this._likesItem); ISupportOtherVideos otherVideosVm = this.OtherVideosVM; List <VKClient.Common.Backend.DataObjects.Video> videoList; if (otherVideosVm == null) { videoList = null; } else { VKList <VKClient.Common.Backend.DataObjects.Video> otherVideos = otherVideosVm.OtherVideos; videoList = otherVideos != null ? otherVideos.items : null; } if (videoList != null && otherVideosVm.OtherVideos.items.Count > 0) { VKList <VKClient.Common.Backend.DataObjects.Video> otherVideos = otherVideosVm.OtherVideos; List <Group> groupList = new List <Group>(); List <User> userList = new List <User>(); if (otherVideos.profiles != null) { userList.AddRange((IEnumerable <User>)Enumerable.Select <User, User>(otherVideos.profiles, (Func <User, User>)(profile => new User() { id = profile.id, first_name = profile.first_name, last_name = profile.last_name }))); } if (otherVideos.groups != null) { groupList.AddRange((IEnumerable <Group>)Enumerable.Select <Group, Group>(otherVideos.groups, (Func <Group, Group>)(profile => new Group() { id = profile.id, name = profile.name }))); } double width2 = 480.0; Thickness margin2 = new Thickness(0.0, 0.0, 0.0, 8.0); Func <UserControlVirtualizable> func1 = (Func <UserControlVirtualizable>)(() => (UserControlVirtualizable) new TextSeparatorUC() { Text = CommonResources.OtherVideos }); // ISSUE: variable of the null type double landscapeWidth1 = 0.0; int num3 = 0; //Func<UserControlVirtualizable> getUserControlFunc1; UCItem ucItem1 = new UCItem(width2, margin2, func1, (Func <double>)(() => 56.0), null, landscapeWidth1, num3 != 0); virtualizableList.Add((IVirtualizable)ucItem1); IVideoCatalogItemUCFactory catalogItemFactory = ServiceLocator.Resolve <IVideoCatalogItemUCFactory>(); IEnumerator <VKClient.Common.Backend.DataObjects.Video> enumerator = ((IEnumerable <VKClient.Common.Backend.DataObjects.Video>)Enumerable.Take <VKClient.Common.Backend.DataObjects.Video>(otherVideos.items, 3)).GetEnumerator(); try { while (enumerator.MoveNext()) { VKClient.Common.Backend.DataObjects.Video video = enumerator.Current; List <User> knownUsers = userList; List <Group> knownGroups = groupList; UCItem ucItem2 = new UCItem(480.0, new Thickness(), (Func <UserControlVirtualizable>)(() => { UserControlVirtualizable controlVirtualizable = catalogItemFactory.Create(video, knownUsers, knownGroups, StatisticsActionSource.video_recommend, this.CreateVideoContext(otherVideos.context)); ((System.Windows.Controls.Panel)(controlVirtualizable as CatalogItemUC).GridLayoutRoot).Background = ((Brush)(Application.Current.Resources["PhoneNewsBackgroundBrush"] as SolidColorBrush)); return(controlVirtualizable); }), new Func <double> (() => catalogItemFactory.Height), null, 0.0, false); virtualizableList.Add((IVirtualizable)ucItem2); } } finally { if (enumerator != null) { enumerator.Dispose(); } } double width3 = 480.0; Thickness margin3 = new Thickness(); Func <UserControlVirtualizable> func2 = (Func <UserControlVirtualizable>)(() => new UserControlVirtualizable()); // ISSUE: variable of the null type double landscapeWidth2 = 0.0; int num4 = 0; //Func<UserControlVirtualizable> getUserControlFunc2; UCItem ucItem3 = new UCItem(width3, margin3, func2, (Func <double>)(() => 8.0), null, landscapeWidth2, num4 != 0); virtualizableList.Add((IVirtualizable)ucItem3); if (otherVideos.items.Count > 3) { this._moreVideosUCItem = new UCItem(480.0, new Thickness(), (Func <UserControlVirtualizable>)(() => (UserControlVirtualizable) new CategoryFooterShortUC() { TapAction = new Action(this.MoreVideos_OnTap) }), (Func <double>)(() => 64.0), null, 0.0, false); virtualizableList.Add((IVirtualizable)this._moreVideosUCItem); } } int totalCommentsCount = this.VM.TotalCommentsCount; this._commentsCountSeparatorUC = new TextSeparatorUC() { Text = CommentsItemsGeneratorHelper.GetTextForCommentsCount(totalCommentsCount) }; this._commentsCountItem = new UCItem(480.0, new Thickness(), (Func <UserControlVirtualizable>)(() => (UserControlVirtualizable)this._commentsCountSeparatorUC), (Func <double>)(() => 56.0), null, 0.0, false); virtualizableList.Add((IVirtualizable)this._commentsCountItem); } if (this.CommentsCountForReload > 0 && !ListExtensions.IsNullOrEmpty((IList)this.VM.Comments)) { ShowMoreCommentsUC showMoreCommentsUc = new ShowMoreCommentsUC(); double num = 54.0; ((FrameworkElement)showMoreCommentsUc).Height = num; Action action = (Action)(() => this._loadMoreCommentsItem_Tap(null, null)); showMoreCommentsUc.OnClickAction = action; string textFor = CommentsItemsGeneratorHelper.GetTextFor(this.CommentsCountForReload); showMoreCommentsUc.Text = textFor; ShowMoreCommentsUC showMoreCommentsUC = showMoreCommentsUc; this._loadMoreCommentsItem = new UCItem(480.0, new Thickness(), (Func <UserControlVirtualizable>)(() => (UserControlVirtualizable)showMoreCommentsUC), (Func <double>)(() => 54.0), null, 0.0, false); virtualizableList.Add((IVirtualizable)this._loadMoreCommentsItem); } long num5 = -1; CommentItem commentItem1 = Enumerable.FirstOrDefault <IVirtualizable>(this.virtPanel.VirtualizableItems, (Func <IVirtualizable, bool>)(i => i is CommentItem)) as CommentItem; if (commentItem1 != null) { num5 = commentItem1.Comment.cid; } List <Comment> .Enumerator enumerator1 = this.VM.Comments.GetEnumerator(); try { while (enumerator1.MoveNext()) { Comment current = enumerator1.Current; if (current.cid != num5) { CommentItem commentItem2 = this.CreateCommentItem(current); virtualizableList.Add((IVirtualizable)commentItem2); } else { break; } } } finally { enumerator1.Dispose(); } ((UIElement)this.ucNewComment).Opacity = (this.VM.CanComment ? 1.0 : 0.6); ((UIElement)this.ucNewComment).IsHitTestVisible = this.VM.CanComment; return(virtualizableList); }
public GroupVideosPage() { ApplicationBarIconButton applicationBarIconButton1 = new ApplicationBarIconButton(); Uri uri1 = new Uri("/Resources/appbar.feature.search.rest.png", UriKind.Relative); applicationBarIconButton1.IconUri = (uri1); string appBarSearch = VideoResources.AppBar_Search; applicationBarIconButton1.Text = (appBarSearch); this._searchVideoButton = applicationBarIconButton1; ApplicationBarIconButton applicationBarIconButton2 = new ApplicationBarIconButton(); Uri uri2 = new Uri("/Resources/appbar.add.rest.png", UriKind.Relative); applicationBarIconButton2.IconUri = (uri2); string appBarAdd = CommonResources.AppBar_Add; applicationBarIconButton2.Text = (appBarAdd); this._addVideoButton = applicationBarIconButton2; this._virtControlsPool = new UCPool(); // ISSUE: explicit constructor call // base.\u002Ector(); this.InitializeComponent(); this.BuildAppBar(); this.ucHeader.Title = CommonResources.Profile_Videos.ToUpperInvariant(); this.ucHeader.OnHeaderTap = (Action)(() => this.virtPanel.ScrollToBottom(false)); this.ucPullToRefresh.TrackListBox((ISupportPullToRefresh)this.virtPanel); this.virtPanel.OnRefresh = (Action)(() => this.VM.VideosGenCol.LoadData(true, false, (Action <BackendResult <VKList <VKClient.Common.Backend.DataObjects.Video>, ResultCode> >)null, false)); this.virtPanel.InitializeWithScrollViewer((IScrollableArea) new ViewportScrollableAreaAdapter(this.scroll), false); this.RegisterForCleanup((IMyVirtualizingPanel)this.virtPanel); this.scroll.BindViewportBoundsTo((FrameworkElement)this.stackPanel); this.virtPanel.CreateVirtItemFunc = (Func <object, IVirtualizable>)(obj => (IVirtualizable) new UCItem(480.0, new Thickness(), (Func <UserControlVirtualizable>)(() => { UserControlVirtualizable controlVirtualizable = null; if (obj is OwnerHeaderWithSubscribeViewModel) { controlVirtualizable = (UserControlVirtualizable)this._virtControlsPool.GetFromPool <OwnerHeaderWithSubscribeUC>(); } if (obj is SectionHeaderViewModel) { controlVirtualizable = (UserControlVirtualizable)this._virtControlsPool.GetFromPool <SectionHeaderUC>(); } if (obj is AlbumsListHorizontalViewModel) { controlVirtualizable = (UserControlVirtualizable)this._virtControlsPool.GetFromPool <CatalogItemsHorizontalExtUC>(); } if (obj is VideoHeader) { controlVirtualizable = (UserControlVirtualizable)this._virtControlsPool.GetFromPool <CatalogItemUC>(); ((Panel)(controlVirtualizable as CatalogItemUC).GridLayoutRoot).Background = ((Brush)(Application.Current.Resources["PhoneNewsBackgroundBrush"] as SolidColorBrush)); } ((FrameworkElement)controlVirtualizable).DataContext = (obj); return(controlVirtualizable); }), (Func <double>)(() => { if (obj is OwnerHeaderWithSubscribeViewModel) { return(68.0); } if (obj is SectionHeaderViewModel) { return(80.0); } if (obj is AlbumsListHorizontalViewModel) { return(242.0); } return(obj is VideoHeader ? 128.0 : 0.0); }), (Action <UserControlVirtualizable>)(uc => this._virtControlsPool.AddBackToPool(uc)), 0.0, false)); }
public ConversationsUC() { this.InitializeComponent(); base.DataContext = ConversationsViewModel.Instance; Logger.Instance.Info("ConversationUC created"); // ISSUE: method pointer base.Loaded += (new RoutedEventHandler(this.ConversationsUC_Loaded)); this.scrollConversations.BindViewportBoundsTo((FrameworkElement)this.stackPanelConversations); this.conversationsListBox.LoadUnloadThreshold = 100.0; this.conversationsListBox.ScrollPositionChanged += new EventHandler <MyVirtualizingPanel2.ScrollPositionChangedEventAgrs>(this.conversationsListBox_ScrollPositionChanged); this.conversationsListBox.InitializeWithScrollViewer((IScrollableArea) new ViewportScrollableAreaAdapter(this.scrollConversations), false); this.conversationsListBox.CreateVirtItemFunc = (Func <object, IVirtualizable>)(obj => (IVirtualizable) new UCItem(480.0, new Thickness(), (Func <UserControlVirtualizable>)(() => { if (this.ConversationsVM.ConversationsGenCol.Refreshing) { this._headerUCPool.Clear(); } bool haveEmoji = (obj as ConversationHeader).HaveEmoji; UserControlVirtualizable controlVirtualizable = this.IsShareContentMode ? (UserControlVirtualizable)Enumerable.FirstOrDefault <UserControlVirtualizable>(this._headerUCPool, (Func <UserControlVirtualizable, bool>)(ch => ch is ConversationHeaderShareUC)) : (haveEmoji ? (UserControlVirtualizable)Enumerable.FirstOrDefault <UserControlVirtualizable>(this._headerUCPool, (Func <UserControlVirtualizable, bool>)(ch => ch is ConversationHeaderUCEmoji)) : (UserControlVirtualizable)Enumerable.FirstOrDefault <UserControlVirtualizable>(this._headerUCPool, (Func <UserControlVirtualizable, bool>)(ch => ch is ConversationHeaderUC))); if (controlVirtualizable != null) { this._headerUCPool.Remove(controlVirtualizable); } else { if (!this.IsShareContentMode) { if (haveEmoji) { ConversationHeaderUCEmoji conversationHeaderUcEmoji = new ConversationHeaderUCEmoji(); int num = this.IsLookup ? 1 : 0; conversationHeaderUcEmoji.IsLookup = num != 0; controlVirtualizable = (UserControlVirtualizable)conversationHeaderUcEmoji; } else { ConversationHeaderUC conversationHeaderUc = new ConversationHeaderUC(); int num = this.IsLookup ? 1 : 0; conversationHeaderUc.IsLookup = num != 0; controlVirtualizable = (UserControlVirtualizable)conversationHeaderUc; } ((UIElement)controlVirtualizable).Tap += (new EventHandler <System.Windows.Input.GestureEventArgs>(this.ChucOnTap)); } else { ConversationHeaderShareUC conversationHeaderShareUc = new ConversationHeaderShareUC(); int num = this.IsLookup ? 1 : 0; conversationHeaderShareUc.IsLookup = num != 0; controlVirtualizable = (UserControlVirtualizable)conversationHeaderShareUc; ((UIElement)controlVirtualizable).Tap += ((EventHandler <System.Windows.Input.GestureEventArgs>)((sender, args) => this.OnConversationTap((Action)(() => this.ChucOnTap(sender, args))))); } ((FrameworkElement)controlVirtualizable).Width = 480.0; } ((FrameworkElement)controlVirtualizable).DataContext = obj; return(controlVirtualizable); }), (Func <double>)(() => !this.IsShareContentMode ? 102.0 : 74.0), (Action <UserControlVirtualizable>)(uc => { ((FrameworkElement)uc).DataContext = null; this._headerUCPool.Add(uc); }), 0.0, false)); }
public VideoCatalogPage() { ApplicationBarIconButton applicationBarIconButton1 = new ApplicationBarIconButton(); Uri uri1 = new Uri("/Resources/appbar.feature.search.rest.png", UriKind.Relative); applicationBarIconButton1.IconUri = (uri1); string appBarSearch = VideoResources.AppBar_Search; applicationBarIconButton1.Text = (appBarSearch); this._searchVideoButton = applicationBarIconButton1; ApplicationBarIconButton applicationBarIconButton2 = new ApplicationBarIconButton(); Uri uri2 = new Uri("/Resources/appbar.add.rest.png", UriKind.Relative); applicationBarIconButton2.IconUri = (uri2); string appBarAdd = CommonResources.AppBar_Add; applicationBarIconButton2.Text = (appBarAdd); this._addVideoButton = applicationBarIconButton2; this._virtControlsPool = new UCPool(); // ISSUE: explicit constructor call // base.\u002Ector(); this.InitializeComponent(); this.virtPanel.CountOfItemsBeforeLoadMore = 40; this.ucHeader.OnHeaderTap = (Action)(() => { if (this.pivot.SelectedItem == this.pivotItemCatalog) { this.virtPanel.ScrollToBottom(false); } else if (this.VM.UserVideosVM.VideoListSource == UserVideosViewModel.CurrentSource.Added) { this.ucMyVideos.listBoxAdded.ScrollToTop(); } else if (this.VM.UserVideosVM.VideoListSource == UserVideosViewModel.CurrentSource.Uploaded) { this.ucMyVideos.listBoxUploaded.ScrollToTop(); } else { if (this.VM.UserVideosVM.VideoListSource != UserVideosViewModel.CurrentSource.Albums) { return; } this.ucMyVideos.listBoxAlbums.ScrollToTop(); } }); this.ucPullToRefresh.TrackListBox((ISupportPullToRefresh)this.virtPanel); this.ucPullToRefresh.TrackListBox((ISupportPullToRefresh)this.ucMyVideos.listBoxAdded); this.ucPullToRefresh.TrackListBox((ISupportPullToRefresh)this.ucMyVideos.listBoxUploaded); this.ucPullToRefresh.TrackListBox((ISupportPullToRefresh)this.ucMyVideos.listBoxAlbums); this.virtPanel.OnRefresh = (Action)(() => this.VM.LoadData(true)); this.ucMyVideos.listBoxAdded.OnRefresh = (Action)(() => this.VM.UserVideosVM.VideosOfOwnerVM.AllVideosVM.LoadData(true, false, (Action <BackendResult <VKList <VKClient.Common.Backend.DataObjects.Video>, ResultCode> >)null, false)); this.ucMyVideos.listBoxUploaded.OnRefresh = (Action)(() => this.VM.UserVideosVM.VideosOfOwnerVM.UploadedVideosVM.LoadData(true, false, (Action <BackendResult <VKList <VKClient.Common.Backend.DataObjects.Video>, ResultCode> >)null, false)); this.ucMyVideos.listBoxAlbums.OnRefresh = (Action)(() => this.VM.UserVideosVM.VideosOfOwnerVM.AlbumsVM.LoadData(true, false, null, false)); this.virtPanel.InitializeWithScrollViewer((IScrollableArea) new ViewportScrollableAreaAdapter(this.scroll), false); this.RegisterForCleanup((IMyVirtualizingPanel)this.virtPanel); this.scroll.BindViewportBoundsTo((FrameworkElement)this.stackPanel); this.BuildAppBar(); this.virtPanel.CreateVirtItemFunc = (Func <object, IVirtualizable>)(obj => (IVirtualizable) new UCItem(480.0, new Thickness(), (Func <UserControlVirtualizable>)(() => { UserControlVirtualizable controlVirtualizable = null; if (obj is ListHeaderViewModel) { controlVirtualizable = (UserControlVirtualizable)this._virtControlsPool.GetFromPool <ListHeaderUC>(); } if (obj is CategoryMoreFooter) { controlVirtualizable = (UserControlVirtualizable)this._virtControlsPool.GetFromPool <CategoryMoreFooterUC>(); } if (obj is CatalogItemViewModel) { controlVirtualizable = (UserControlVirtualizable)this._virtControlsPool.GetFromPool <CatalogItemUC>(); ((Panel)(controlVirtualizable as CatalogItemUC).GridLayoutRoot).Background = ((Brush)(Application.Current.Resources["PhoneNewsBackgroundBrush"] as SolidColorBrush)); } if (obj is CatalogItemsHorizontalViewModel) { controlVirtualizable = (UserControlVirtualizable)this._virtControlsPool.GetFromPool <CatalogItemsHorizontalExtUC>(); } if (obj is DividerSpaceUpViewModel) { controlVirtualizable = (UserControlVirtualizable)this._virtControlsPool.GetFromPool <DividerSpaceUpUC>(); } if (obj is DividerSpaceDownViewModel) { controlVirtualizable = (UserControlVirtualizable)this._virtControlsPool.GetFromPool <DividerSpaceDownUC>(); } if (obj is CatalogItemTwoInARowViewModel) { controlVirtualizable = (UserControlVirtualizable)this._virtControlsPool.GetFromPool <CatalogItemTwoInARowUC>(); } ((FrameworkElement)controlVirtualizable).DataContext = (obj); return(controlVirtualizable); }), (Func <double>)(() => { if (obj is ListHeaderViewModel) { return(84.0); } if (obj is CategoryMoreFooter) { return(64.0); } if (obj is CatalogItemViewModel) { return(128.0); } if (obj is CatalogItemsHorizontalViewModel) { return(242.0); } if (obj is DividerSpaceUpViewModel || obj is DividerSpaceDownViewModel) { return(8.0); } return(obj is CatalogItemTwoInARowViewModel ? 138.0 : 0.0); }), (Action <UserControlVirtualizable>)(ucv => this._virtControlsPool.AddBackToPool(ucv)), 0.0, false)); }
public VideoCatalogPage() { this.InitializeComponent(); this.virtPanel.CountOfItemsBeforeLoadMore = 40; this.ucHeader.OnHeaderTap = (Action)(() => { if (this.pivot.SelectedItem == this.pivotItemCatalog) { this.virtPanel.ScrollToBottom(false); } else if (this.VM.UserVideosVM.VideoListSource == UserVideosViewModel.CurrentSource.Added) { this.ucMyVideos.listBoxAdded.ScrollToTop(); } else if (this.VM.UserVideosVM.VideoListSource == UserVideosViewModel.CurrentSource.Uploaded) { this.ucMyVideos.listBoxUploaded.ScrollToTop(); } else { if (this.VM.UserVideosVM.VideoListSource != UserVideosViewModel.CurrentSource.Albums) { return; } this.ucMyVideos.listBoxAlbums.ScrollToTop(); } }); this.ucPullToRefresh.TrackListBox((ISupportPullToRefresh)this.virtPanel); this.ucPullToRefresh.TrackListBox((ISupportPullToRefresh)this.ucMyVideos.listBoxAdded); this.ucPullToRefresh.TrackListBox((ISupportPullToRefresh)this.ucMyVideos.listBoxUploaded); this.ucPullToRefresh.TrackListBox((ISupportPullToRefresh)this.ucMyVideos.listBoxAlbums); this.virtPanel.OnRefresh = (Action)(() => this.VM.LoadData(true)); this.ucMyVideos.listBoxAdded.OnRefresh = (Action)(() => this.VM.UserVideosVM.VideosOfOwnerVM.AllVideosVM.LoadData(true, false, (Action <BackendResult <VKList <VKClient.Common.Backend.DataObjects.Video>, ResultCode> >)null, false)); this.ucMyVideos.listBoxUploaded.OnRefresh = (Action)(() => this.VM.UserVideosVM.VideosOfOwnerVM.UploadedVideosVM.LoadData(true, false, (Action <BackendResult <VKList <VKClient.Common.Backend.DataObjects.Video>, ResultCode> >)null, false)); this.ucMyVideos.listBoxAlbums.OnRefresh = (Action)(() => this.VM.UserVideosVM.VideosOfOwnerVM.AlbumsVM.LoadData(true, false, (Action <BackendResult <VKList <VideoAlbum>, ResultCode> >)null, false)); this.virtPanel.InitializeWithScrollViewer((IScrollableArea) new ViewportScrollableAreaAdapter(this.scroll), false); this.RegisterForCleanup((IMyVirtualizingPanel)this.virtPanel); this.scroll.BindViewportBoundsTo((FrameworkElement)this.stackPanel); this.BuildAppBar(); this.virtPanel.CreateVirtItemFunc = (Func <object, IVirtualizable>)(obj => (IVirtualizable) new UCItem(480.0, new Thickness(), (Func <UserControlVirtualizable>)(() => { UserControlVirtualizable controlVirtualizable = (UserControlVirtualizable)null; if (obj is ListHeaderViewModel) { controlVirtualizable = (UserControlVirtualizable)this._virtControlsPool.GetFromPool <ListHeaderUC>(); } if (obj is CategoryMoreFooter) { controlVirtualizable = (UserControlVirtualizable)this._virtControlsPool.GetFromPool <CategoryMoreFooterUC>(); } if (obj is CatalogItemViewModel) { controlVirtualizable = (UserControlVirtualizable)this._virtControlsPool.GetFromPool <CatalogItemUC>(); (controlVirtualizable as CatalogItemUC).GridLayoutRoot.Background = (Brush)(Application.Current.Resources["PhoneNewsBackgroundBrush"] as SolidColorBrush); } if (obj is CatalogItemsHorizontalViewModel) { controlVirtualizable = (UserControlVirtualizable)this._virtControlsPool.GetFromPool <CatalogItemsHorizontalExtUC>(); } if (obj is DividerSpaceUpViewModel) { controlVirtualizable = (UserControlVirtualizable)this._virtControlsPool.GetFromPool <DividerSpaceUpUC>(); } if (obj is DividerSpaceDownViewModel) { controlVirtualizable = (UserControlVirtualizable)this._virtControlsPool.GetFromPool <DividerSpaceDownUC>(); } if (obj is CatalogItemTwoInARowViewModel) { controlVirtualizable = (UserControlVirtualizable)this._virtControlsPool.GetFromPool <CatalogItemTwoInARowUC>(); } controlVirtualizable.DataContext = obj; return(controlVirtualizable); }), (Func <double>)(() => { if (obj is ListHeaderViewModel) { return(84.0); } if (obj is CategoryMoreFooter) { return(64.0); } if (obj is CatalogItemViewModel) { return(128.0); } if (obj is CatalogItemsHorizontalViewModel) { return(242.0); } if (obj is DividerSpaceUpViewModel || obj is DividerSpaceDownViewModel) { return(8.0); } return(obj is CatalogItemTwoInARowViewModel ? 138.0 : 0.0); }), (Action <UserControlVirtualizable>)(ucv => this._virtControlsPool.AddBackToPool(ucv)), 0.0, false)); }