using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Navigation;
using XFEWarframe.Admin.ViewModels;
using XFEWarframe.Desktop.Editing;
namespace XFEWarframe.Admin.Views;
public sealed partial class EditorPage : Page
{
public EditorPageViewModel ViewModel { get; } = new();
private bool returningFromDetails;
public EditorPage()
{
InitializeComponent(); DataContext = ViewModel; NavigationCacheMode = NavigationCacheMode.Enabled;
EditDialogButton.Validating += (_, _) => { foreach (var field in ViewModel.Fields) field.Serialize(); };
ViewModel.NavigationParameters.Initialize(this);
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e); ViewModel.Attach();
if (e.NavigationMode == NavigationMode.Back && returningFromDetails) ViewModel.ResumeListCommand.Execute(null);
else ViewModel.NavigationParameters.OnParameterChange(e.Parameter);
returningFromDetails = false;
}
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
returningFromDetails = e.SourcePageType == typeof(EquipmentPage);
ViewModel.Detach(); base.OnNavigatedFrom(e);
}
private void ItemClicked(object sender, ItemClickEventArgs e)
{
if (e.ClickedItem is not EditorItem item) return;
ViewModel.SelectedItem = item;
ViewModel.EditItemCommand.Execute(null);
}
}
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Navigation;
using XFEWarframe.Admin.ViewModels;
using XFEWarframe.Desktop.Editing;
namespace XFEWarframe.Admin.Views;
public sealed partial class EditorPage : Page
{
public EditorPageViewModel ViewModel { get; } = new();
private bool returningFromDetails;
public EditorPage()
{
InitializeComponent(); DataContext = ViewModel; NavigationCacheMode = NavigationCacheMode.Enabled;
EditDialogButton.Validating += (_, _) => { foreach (var field in ViewModel.Fields) field.Serialize(); };
ViewModel.NavigationParameters.Initialize(this);
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e); ViewModel.Attach();
if (e.NavigationMode == NavigationMode.Back && returningFromDetails) ViewModel.ResumeListCommand.Execute(null);
else ViewModel.NavigationParameters.OnParameterChange(e.Parameter);
returningFromDetails = false;
}
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
returningFromDetails = e.SourcePageType == typeof(EquipmentPage);
ViewModel.Detach(); base.OnNavigatedFrom(e);
}
private void ItemClicked(object sender, ItemClickEventArgs e)
{
if (e.ClickedItem is not EditorItem item) return;
ViewModel.SelectedItem = item;
ViewModel.EditItemCommand.Execute(null);
}
}