GameListView.axaml.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using Avalonia.Controls;
  2. using Avalonia.Input;
  3. using Avalonia.Interactivity;
  4. using Avalonia.Markup.Xaml;
  5. using Ryujinx.Ava.UI.Helpers;
  6. using Ryujinx.Ava.UI.ViewModels;
  7. using Ryujinx.Ui.App.Common;
  8. using System;
  9. namespace Ryujinx.Ava.UI.Controls
  10. {
  11. public partial class GameListView : UserControl
  12. {
  13. public static readonly RoutedEvent<ApplicationOpenedEventArgs> ApplicationOpenedEvent =
  14. RoutedEvent.Register<GameGridView, ApplicationOpenedEventArgs>(nameof(ApplicationOpened), RoutingStrategies.Bubble);
  15. public event EventHandler<ApplicationOpenedEventArgs> ApplicationOpened
  16. {
  17. add { AddHandler(ApplicationOpenedEvent, value); }
  18. remove { RemoveHandler(ApplicationOpenedEvent, value); }
  19. }
  20. public GameListView()
  21. {
  22. InitializeComponent();
  23. }
  24. private void InitializeComponent()
  25. {
  26. AvaloniaXamlLoader.Load(this);
  27. }
  28. public void GameList_DoubleTapped(object sender, RoutedEventArgs args)
  29. {
  30. if (sender is ListBox listBox)
  31. {
  32. if (listBox.SelectedItem is ApplicationData selected)
  33. {
  34. RaiseEvent(new ApplicationOpenedEventArgs(selected, ApplicationOpenedEvent));
  35. }
  36. }
  37. }
  38. public void GameList_SelectionChanged(object sender, SelectionChangedEventArgs args)
  39. {
  40. if (sender is ListBox listBox)
  41. {
  42. (DataContext as MainWindowViewModel).ListSelectedApplication = listBox.SelectedItem as ApplicationData;
  43. }
  44. }
  45. private void SearchBox_OnKeyUp(object sender, KeyEventArgs e)
  46. {
  47. (DataContext as MainWindowViewModel).SearchText = (sender as TextBox).Text;
  48. }
  49. }
  50. }