XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEWarframe

【WinUI】基于Warframe游戏本体的公开服务器以及安装器

公开
关注 0 Fork 0 Star 0
UTF-8
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);
    }
}