This repository has been archived on 2022-11-03. You can view files and clone it, but cannot push or open issues or pull requests.
DevOpsOpenHack/MobileApps/MyDriving/MyDriving.UWP/Views/PastTripsMenuView.xaml.cs
2022-11-03 16:41:13 -04:00

98 lines
3.1 KiB
C#

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for details.
using Windows.UI.Core;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Navigation;
using MyDriving.DataObjects;
using MyDriving.ViewModel;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Input;
// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409
namespace MyDriving.UWP.Views
{
/// <summary>
/// An empty page that can be used on its own or navigated to within a Frame.
/// </summary>
public sealed partial class PastTripsMenuView
{
public PastTripsMenuView()
{
InitializeComponent();
ViewModel = new PastTripsViewModel();
}
public PastTripsViewModel ViewModel { get; set; }
protected override async void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
App.SetTitle("PAST TRIPS");
// Enable back button behavior
SystemNavigationManager systemNavigationManager = SystemNavigationManager.GetForCurrentView();
systemNavigationManager.BackRequested += SystemNavigationManager_BackRequested;
await ViewModel.ExecuteLoadPastTripsCommandAsync();
}
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
base.OnNavigatedFrom(e);
SystemNavigationManager systemNavigationManager = SystemNavigationManager.GetForCurrentView();
systemNavigationManager.BackRequested -= SystemNavigationManager_BackRequested;
}
private void SystemNavigationManager_BackRequested(object sender, BackRequestedEventArgs e)
{
if (!e.Handled)
{
e.Handled = TryGoBack();
}
}
private bool TryGoBack()
{
bool navigated = false;
if (Frame.CanGoBack)
{
Frame.GoBack();
navigated = true;
}
return navigated;
}
private void listView_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var trip = (Trip) e.AddedItems[0];
Frame.Navigate(typeof (PastTripMapView), trip); // PastTripMapView does not exist
}
private void ListViewItem_Holding(object sender, HoldingRoutedEventArgs e)
{
var senderElement = sender as FrameworkElement;
var flyoutBase = FlyoutBase.GetAttachedFlyout(senderElement);
flyoutBase.ShowAt(senderElement);
}
private async void DeleteButton_Click(object sender, RoutedEventArgs e)
{
var trip = (e.OriginalSource as FrameworkElement).DataContext as Trip;
if (trip == null)
return;
await ViewModel.ExecuteDeleteTripCommand(trip);
}
private async void RefreshButton_Click(object sender, RoutedEventArgs e)
{
await ViewModel.ExecuteLoadPastTripsCommandAsync();
}
}
}