ApplicationGridView.axaml.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using Avalonia.Controls;
  2. using Avalonia.Input;
  3. using Avalonia.Interactivity;
  4. using Ryujinx.Ava.UI.Helpers;
  5. using Ryujinx.Ava.UI.ViewModels;
  6. using Ryujinx.Ava.Utilities.AppLibrary;
  7. using System;
  8. namespace Ryujinx.Ava.UI.Controls
  9. {
  10. public partial class ApplicationGridView : UserControl
  11. {
  12. public static readonly RoutedEvent<ApplicationOpenedEventArgs> ApplicationOpenedEvent =
  13. RoutedEvent.Register<ApplicationGridView, ApplicationOpenedEventArgs>(nameof(ApplicationOpened), RoutingStrategies.Bubble);
  14. public event EventHandler<ApplicationOpenedEventArgs> ApplicationOpened
  15. {
  16. add => AddHandler(ApplicationOpenedEvent, value);
  17. remove => RemoveHandler(ApplicationOpenedEvent, value);
  18. }
  19. public ApplicationGridView() => InitializeComponent();
  20. public void GameList_DoubleTapped(object sender, TappedEventArgs args)
  21. {
  22. if (sender is ListBox { SelectedItem: ApplicationData selected })
  23. RaiseEvent(new ApplicationOpenedEventArgs(selected, ApplicationOpenedEvent));
  24. }
  25. public void GameList_SelectionChanged(object sender, SelectionChangedEventArgs args)
  26. {
  27. if (DataContext is MainWindowViewModel viewModel && sender is ListBox { SelectedItem: ApplicationData selected })
  28. viewModel.GridSelectedApplication = selected;
  29. }
  30. }
  31. }