AvatarWindow.axaml.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. using Avalonia.Controls;
  2. using Avalonia.Interactivity;
  3. using FluentAvalonia.UI.Controls;
  4. using FluentAvalonia.UI.Navigation;
  5. using Ryujinx.Ava.Ui.Controls;
  6. using Ryujinx.Ava.Ui.Models;
  7. using Ryujinx.Ava.Ui.ViewModels;
  8. using Ryujinx.HLE.FileSystem;
  9. namespace Ryujinx.Ava.Ui.Windows
  10. {
  11. public partial class AvatarWindow : UserControl
  12. {
  13. private NavigationDialogHost _parent;
  14. private TempProfile _profile;
  15. public AvatarWindow(ContentManager contentManager)
  16. {
  17. ContentManager = contentManager;
  18. DataContext = ViewModel;
  19. InitializeComponent();
  20. }
  21. public AvatarWindow()
  22. {
  23. InitializeComponent();
  24. AddHandler(Frame.NavigatedToEvent, (s, e) =>
  25. {
  26. NavigatedTo(e);
  27. }, RoutingStrategies.Direct);
  28. }
  29. private void NavigatedTo(NavigationEventArgs arg)
  30. {
  31. if (Program.PreviewerDetached)
  32. {
  33. if (arg.NavigationMode == NavigationMode.New)
  34. {
  35. (_parent, _profile) = ((NavigationDialogHost, TempProfile))arg.Parameter;
  36. ContentManager = _parent.ContentManager;
  37. if (Program.PreviewerDetached)
  38. {
  39. ViewModel = new AvatarProfileViewModel(() => ViewModel.ReloadImages());
  40. }
  41. DataContext = ViewModel;
  42. }
  43. }
  44. }
  45. public ContentManager ContentManager { get; private set; }
  46. internal AvatarProfileViewModel ViewModel { get; set; }
  47. private void CloseButton_OnClick(object sender, RoutedEventArgs e)
  48. {
  49. ViewModel.Dispose();
  50. _parent.GoBack();
  51. }
  52. private void ChooseButton_OnClick(object sender, RoutedEventArgs e)
  53. {
  54. if (ViewModel.SelectedIndex > -1)
  55. {
  56. _profile.Image = ViewModel.SelectedImage;
  57. ViewModel.Dispose();
  58. _parent.GoBack();
  59. }
  60. }
  61. }
  62. }