AutoCatAvalonia/AutoCat/Windows/MainWindow.axaml.cs
2024-05-06 01:44:57 +03:00

77 lines
2.0 KiB
C#

using System;
using System.Linq;
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 += (_, _) =>
{
dialog.Hide();
Console.WriteLine($"Checked number: {vm.Vehicle?.Number}");
};
}
await dialogTask;
}
}