78 lines
2.1 KiB
C#
78 lines
2.1 KiB
C#
using System;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using AutoCat.Pages;
|
|
using AutoCat.ViewModels;
|
|
using Avalonia.Controls;
|
|
using FluentAvalonia.UI.Controls;
|
|
|
|
namespace AutoCat.Windows;
|
|
|
|
public partial class MainWindow : Window
|
|
{
|
|
private readonly SettingsPage _settingsPage = new SettingsPage();
|
|
private readonly HistoryPage _historyPage = new HistoryPage();
|
|
|
|
public MainWindow()
|
|
{
|
|
InitializeComponent();
|
|
|
|
NavView.SelectionChanged += NavSelectionChanged;
|
|
NavView.ItemInvoked += NavViewOnItemInvoked;
|
|
NavView.SelectedItem = NavView.MenuItems.First(x => (x as NavigationViewItem)?.Tag?.ToString() == "History");
|
|
}
|
|
|
|
private void NavViewOnItemInvoked(object? sender, NavigationViewItemInvokedEventArgs e)
|
|
{
|
|
switch (e.InvokedItemContainer.Tag)
|
|
{
|
|
case "Check":
|
|
ShowCheckNumberDialog();
|
|
break;
|
|
}
|
|
}
|
|
|
|
private void NavSelectionChanged(object? sender, NavigationViewSelectionChangedEventArgs args)
|
|
{
|
|
if (args.IsSettingsSelected)
|
|
{
|
|
NavView.Content = _settingsPage;
|
|
}
|
|
else if (args.SelectedItem is NavigationViewItem item)
|
|
{
|
|
switch (item.Tag)
|
|
{
|
|
case "History":
|
|
break;
|
|
case "Search":
|
|
NavView.Content = _historyPage;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
private async void ShowCheckNumberDialog()
|
|
{
|
|
var dialog = new ContentDialog()
|
|
{
|
|
Title = "Check new number",
|
|
CloseButtonText = "Cancel"
|
|
};
|
|
|
|
var dialogContent = new CheckNumberDialog();
|
|
dialog.Content = dialogContent;
|
|
|
|
var dialogTask = dialog.ShowAsync();
|
|
|
|
if (dialogContent.DataContext is CheckNumberViewModel vm)
|
|
{
|
|
vm.AutoCloseEvent += (sender, args) =>
|
|
{
|
|
dialog.Hide();
|
|
Console.WriteLine($"Checked number: {vm.Vehicle?.Number}");
|
|
};
|
|
}
|
|
|
|
await dialogTask;
|
|
}
|
|
} |