private void OnFolderChanged(BaseFolderViewModel folder) { if (this.ViewModel == null) { return; } if (this.ViewModel.Folder != null) { this.ViewModel.Folder.FolderNavigatedTo -= OnFolderNavigatedTo; this.ViewModel.Folder.ChangeViewEvent -= OnViewChanged; this.ViewModel.Folder.ItemCollection.MultiSelectEnabled -= OnMultiSelectEnabled; this.ViewModel.Folder.ItemCollection.MultiSelectDisabled -= OnMultiSelectDisabled; this.ViewModel.Folder.ItemCollection.OnlyAllowSingleSelectStatusChanged -= OnOnlyAllowSingleSelectStatusChanged; this.ViewModel.Folder.ItemCollection.AllSelected -= OnAllSelected; } this.ViewModel.Folder = folder; if (this.ViewModel.Folder == null) { return; } this.ViewModel.Folder.FolderNavigatedTo += OnFolderNavigatedTo; this.ViewModel.Folder.ChangeViewEvent += OnViewChanged; this.ViewModel.Folder.ItemCollection.MultiSelectEnabled += OnMultiSelectEnabled; this.ViewModel.Folder.ItemCollection.MultiSelectDisabled += OnMultiSelectDisabled; this.ViewModel.Folder.ItemCollection.OnlyAllowSingleSelectStatusChanged += OnOnlyAllowSingleSelectStatusChanged; this.ViewModel.Folder.ItemCollection.AllSelected += OnAllSelected; this.OnlyAllowSingleSelect(this.ViewModel.Folder.IsForSelectFolder); }
/// <summary> /// Creates the sort menu with all the sort options. /// </summary> /// <param name="folder">Folder to sort.</param> /// <returns>The flyout menu with the sort options.</returns> public static MenuFlyout CreateSortMenu(BaseFolderViewModel folder) { var currentSortOrder = UiService.GetSortOrder(folder?.FolderRootNode?.Base64Handle, folder?.FolderRootNode?.Name); MenuFlyout menuFlyout = new MenuFlyout(); menuFlyout.Items?.Add(new MenuFlyoutItem() { Text = ResourceService.UiResources.GetString("UI_SortOptionName"), Foreground = GetSortMenuItemForeground(currentSortOrder, NodesSortOrderType.ORDER_NAME), Command = new RelayCommand(() => { var newOrder = folder != null && folder.ItemCollection.IsCurrentOrderAscending ? MSortOrderType.ORDER_ALPHABETICAL_ASC : MSortOrderType.ORDER_ALPHABETICAL_DESC; if (folder == null) { return; } UiService.SetSortOrder(folder.FolderRootNode.Base64Handle, newOrder); folder.LoadChildNodes(); }) }); menuFlyout.Items?.Add(new MenuFlyoutItem() { Text = ResourceService.UiResources.GetString("UI_SortOptionSize"), Foreground = GetSortMenuItemForeground(currentSortOrder, NodesSortOrderType.ORDER_SIZE), Command = new RelayCommand(() => { var newOrder = folder != null && folder.ItemCollection.IsCurrentOrderAscending ? MSortOrderType.ORDER_SIZE_ASC : MSortOrderType.ORDER_SIZE_DESC; if (folder == null) { return; } UiService.SetSortOrder(folder.FolderRootNode.Base64Handle, newOrder); folder.LoadChildNodes(); }) }); menuFlyout.Items?.Add(new MenuFlyoutItem() { Text = ResourceService.UiResources.GetString("UI_SortOptionDateModified"), Foreground = GetSortMenuItemForeground(currentSortOrder, NodesSortOrderType.ORDER_MODIFICATION), Command = new RelayCommand(() => { var newOrder = folder != null && folder.ItemCollection.IsCurrentOrderAscending ? MSortOrderType.ORDER_MODIFICATION_ASC : MSortOrderType.ORDER_MODIFICATION_DESC; if (folder == null) { return; } UiService.SetSortOrder(folder.FolderRootNode.Base64Handle, newOrder); folder.LoadChildNodes(); }) }); menuFlyout.Items?.Add(new MenuFlyoutItem() { Text = ResourceService.UiResources.GetString("UI_SortOptionType"), Foreground = GetSortMenuItemForeground(currentSortOrder, NodesSortOrderType.ORDER_TYPE), Command = new RelayCommand(() => { var newOrder = folder != null && folder.ItemCollection.IsCurrentOrderAscending ? MSortOrderType.ORDER_DEFAULT_ASC : MSortOrderType.ORDER_DEFAULT_DESC; if (folder == null) { return; } UiService.SetSortOrder(folder.FolderRootNode.Base64Handle, newOrder); folder.LoadChildNodes(); }) }); return(menuFlyout); }