mirror of
https://github.com/bloxstraplabs/bloxstrap.git
synced 2025-04-14 17:21:28 -07:00
63 lines
1.8 KiB
C#
63 lines
1.8 KiB
C#
using System.Windows;
|
|
using System.Windows.Input;
|
|
|
|
using Bloxstrap.UI.ViewModels.Settings;
|
|
using Wpf.Ui.Mvvm.Contracts;
|
|
|
|
namespace Bloxstrap.UI.Elements.Settings.Pages
|
|
{
|
|
/// <summary>
|
|
/// Interaction logic for FastFlagsPage.xaml
|
|
/// </summary>
|
|
public partial class FastFlagsPage
|
|
{
|
|
private bool _initialLoad = false;
|
|
|
|
private FastFlagsViewModel _viewModel = null!;
|
|
|
|
public FastFlagsPage()
|
|
{
|
|
SetupViewModel();
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void SetupViewModel()
|
|
{
|
|
_viewModel = new FastFlagsViewModel();
|
|
|
|
_viewModel.OpenFlagEditorEvent += OpenFlagEditor;
|
|
_viewModel.RequestPageReloadEvent += (_, _) => SetupViewModel();
|
|
|
|
DataContext = _viewModel;
|
|
}
|
|
|
|
private void OpenFlagEditor(object? sender, EventArgs e)
|
|
{
|
|
if (Window.GetWindow(this) is INavigationWindow window)
|
|
{
|
|
if (App.State.Prop.ShowFFlagEditorWarnings)
|
|
window.Navigate(typeof(FastFlagEditorWarningPage));
|
|
else
|
|
window.Navigate(typeof(FastFlagEditorPage));
|
|
}
|
|
}
|
|
|
|
private void Page_Loaded(object sender, RoutedEventArgs e)
|
|
{
|
|
// refresh datacontext on page load to synchronize with editor page
|
|
|
|
if (!_initialLoad)
|
|
{
|
|
_initialLoad = true;
|
|
return;
|
|
}
|
|
|
|
SetupViewModel();
|
|
}
|
|
|
|
private void ValidateInt32(object sender, TextCompositionEventArgs e) => e.Handled = e.Text != "-" && !Int32.TryParse(e.Text, out int _);
|
|
|
|
private void ValidateUInt32(object sender, TextCompositionEventArgs e) => e.Handled = !UInt32.TryParse(e.Text, out uint _);
|
|
}
|
|
}
|