private void OnContactRightTapped(object sender, RightTappedRoutedEventArgs e) { IMegaContact itemTapped = ((FrameworkElement)e.OriginalSource)?.DataContext as IMegaContact; if (itemTapped == null) { return; } if (!(this.ViewModel.ActiveView is ContactsListViewModel)) { return; } this.ViewModel.MegaContacts.ItemCollection.FocusedItem = itemTapped; var view = (ListViewBase)sender; if (view == null) { return; } if (this.ViewModel.MegaContacts.ItemCollection.IsMultiSelectActive) { view.SelectedItems?.Add(itemTapped); } else { view.SelectedItem = itemTapped; } }
private void OnRightItemTapped(object sender, RightTappedRoutedEventArgs e) { if (this.ViewModel.Node is FolderNodeViewModel == false) { return; } var folderNode = (FolderNodeViewModel)this.ViewModel.Node; IMegaContact itemTapped = ((FrameworkElement)e.OriginalSource)?.DataContext as IMegaContact; if (itemTapped == null) { return; } folderNode.ContactsList.ItemCollection.FocusedItem = itemTapped; var view = (ListViewBase)sender; if (view == null) { return; } if (folderNode.ContactsList.ItemCollection.IsMultiSelectActive) { view.SelectedItems?.Add(itemTapped); } else { view.SelectedItem = itemTapped; } }
private void OnMultiSelectDisabled(object sender, EventArgs e) { if (this.ViewModel.Node is FolderNodeViewModel == false) { return; } var folderNode = this.ViewModel.Node as FolderNodeViewModel; // Needed to avoid strange behaviors during the view update DisableViewsBehaviors(); // If there is only one selected item save it to restore it after disable the multi select mode IMegaContact selectedItem = null; if (folderNode.ContactsList.ItemCollection.OnlyOneSelectedItem) { selectedItem = folderNode.ContactsList.ItemCollection.SelectedItems.First(); } this.ListViewContacts.SelectionMode = DeviceService.GetDeviceType() == DeviceFormFactorType.Desktop ? ListViewSelectionMode.Extended : ListViewSelectionMode.Single; // Restore the selected item this.ListViewContacts.SelectedItem = folderNode.ContactsList.ItemCollection.FocusedItem = selectedItem; // Restore the view behaviors again EnableViewsBehaviors(); }
private void OnContactTapped(object sender, TappedRoutedEventArgs e) { IMegaContact itemTapped = ((FrameworkElement)e.OriginalSource)?.DataContext as IMegaContact; if (itemTapped == null) { return; } this.ViewModel.MegaContacts.ItemCollection.FocusedItem = itemTapped; }