internal void BroadcastItemsChanged() { if (IsFirstItem)// && _rootModel is BreadcrumbViewModel<FI, DI, FSI>) { ShowCaption = EmbeddedDirectoryModel.Equals(_rootModel.SelectedNavigationViewModel.EmbeddedDirectoryModel); } //(_rootModel as BreadcrumbViewModel<FI, DI, FSI>).Hierarchy.Count == 1; }
public void PlaceBounty() { if (_rootModel == null || _rootModel.Bounty == null || !IsDirectory || _isSeparator) { return; } if (EmbeddedDirectoryModel.EqualsOrHasChild(_rootModel.Bounty)) { if (EmbeddedDirectoryModel.Equals(_rootModel.Bounty)) { //Debug.WriteLine(_rootModel.Bounty.IsCached); //Debug.WriteLine(EmbeddedDirectoryModel.IsCached); //Exchange bounty if cached. if (!EmbeddedDirectoryModel.IsCached && _rootModel.Bounty.IsCached) { _embeddedDirectoryModel = _rootModel.Bounty; } _rootModel.RequestBountyReward(this); } else { IsSelected = false; if (_isInited) { IsExpanded = true; foreach (NavigationItemViewModel <FI, DI, FSI> subDirVM in _subDirectories.OrderBy((nivm) => { return(-nivm.EmbeddedEntryModel.CustomPosition); })) { if (subDirVM.EmbeddedDirectoryModel.EqualsOrHasChild(_rootModel.Bounty)) { subDirVM.PlaceBounty(); break; } else { subDirVM.CollapseAll(); } } } else { //Let greed does all the work.... IsExpanded = true; } } } else { IsSelected = false; } }
//private void changeSortMethod(SortCriteria sortBy, ListSortDirection sortDirection) //{ // ListCollectionView dataView = (ListCollectionView)(CollectionViewSource.GetDefaultView(_subEntries)); // dataView.SortDescriptions.Clear(); // dataView.CustomSort = null; // SortDirectionType direction = sortDirection == ListSortDirection.Ascending ? // SortDirectionType.sortAssending : SortDirectionType.sortDescending; // dataView.CustomSort = new EntryComparer<FI, DI, FSI>(sortBy, direction) // { IsFolderFirst = true }; //} private void setupSubEntries() { //Func<EntryModel<FI, DI, FSI>, EntryViewModel<FI, DI, FSI>> toViewModel = // (m) => // { // EntryViewModel<FI, DI, FSI> retVal = m.ToViewModel(); // retVal.ParentViewModel = this; // return retVal; // }; _subEntries = new AsyncObservableCollection <EntryViewModel <FI, DI, FSI> > ( from entryModel in EmbeddedDirectoryModel.GetSubEntries(true) select entryModel.ToViewModel(Profile), (list, ex) => { ListStatus = (ex != null) ? ListMode.Error : ListMode.Completed; _subDirectories.Clear(); _subFiles.Clear(); foreach (EntryViewModel <FI, DI, FSI> entry in _subEntries) { if (entry is FileViewModel <FI, DI, FSI> ) { _subFiles.Add(entry); } } foreach (EntryViewModel <FI, DI, FSI> entry in _subEntries) { if (entry is DirectoryViewModel <FI, DI, FSI> ) { _subDirectories.Add(entry); } } lock (taskCompletedNotifierList) { foreach (Action taskAfterCompleted in taskCompletedNotifierList) { taskAfterCompleted(); } taskCompletedNotifierList.Clear(); } HasSubDirectories = _subDirectories.Count > 0; }); _subDirectories = new ObservableCollection <EntryViewModel <FI, DI, FSI> >(); _subFiles = new ObservableCollection <EntryViewModel <FI, DI, FSI> >(); _subEntries.ChangeSortMethod(_sortBy, _sortDirection); }