SortMenuPage.xaml.cs 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. using MediaBrowser.Model.Net;
  2. using MediaBrowser.UI;
  3. using MediaBrowser.UI.Controls;
  4. using System;
  5. using System.Windows;
  6. using System.Windows.Controls;
  7. namespace MediaBrowser.Plugins.DefaultTheme.DisplayPreferences
  8. {
  9. /// <summary>
  10. /// Interaction logic for SortMenuPage.xaml
  11. /// </summary>
  12. public partial class SortMenuPage : BaseDisplayPreferencesPage
  13. {
  14. /// <summary>
  15. /// Initializes a new instance of the <see cref="SortMenuPage" /> class.
  16. /// </summary>
  17. public SortMenuPage()
  18. {
  19. InitializeComponent();
  20. chkRemember.Click += chkRemember_Click;
  21. }
  22. /// <summary>
  23. /// Handles the Click event of the chkRemember control.
  24. /// </summary>
  25. /// <param name="sender">The source of the event.</param>
  26. /// <param name="e">The <see cref="RoutedEventArgs" /> instance containing the event data.</param>
  27. async void chkRemember_Click(object sender, RoutedEventArgs e)
  28. {
  29. try
  30. {
  31. await MainPage.UpdateRememberSort(chkRemember.IsChecked.HasValue && chkRemember.IsChecked.Value);
  32. }
  33. catch (HttpException)
  34. {
  35. App.Instance.ShowDefaultErrorMessage();
  36. }
  37. }
  38. /// <summary>
  39. /// Called when [loaded].
  40. /// </summary>
  41. protected override void OnLoaded()
  42. {
  43. chkRemember.IsChecked = MainPage.DisplayPreferences.RememberSorting;
  44. var index = 0;
  45. var currentValue = MainPage.SortBy ?? string.Empty;
  46. foreach (var option in MainPage.Folder.SortOptions)
  47. {
  48. var radio = new ExtendedRadioButton { GroupName = "Options" };
  49. radio.SetResourceReference(StyleProperty, "ViewMenuRadioButton");
  50. var textblock = new TextBlock { Text = option };
  51. textblock.SetResourceReference(StyleProperty, "TextBlockStyle");
  52. radio.Content = textblock;
  53. if (string.IsNullOrEmpty(MainPage.DisplayPreferences.SortBy))
  54. {
  55. radio.IsChecked = index == 0;
  56. }
  57. else
  58. {
  59. radio.IsChecked = currentValue.Equals(option, StringComparison.OrdinalIgnoreCase);
  60. }
  61. radio.Tag = option;
  62. radio.Click += radio_Click;
  63. pnlOptions.Children.Add(radio);
  64. index++;
  65. }
  66. base.OnLoaded();
  67. }
  68. /// <summary>
  69. /// Handles the Click event of the radio control.
  70. /// </summary>
  71. /// <param name="sender">The source of the event.</param>
  72. /// <param name="e">The <see cref="RoutedEventArgs" /> instance containing the event data.</param>
  73. async void radio_Click(object sender, RoutedEventArgs e)
  74. {
  75. await MainPage.UpdateSortOption((sender as RadioButton).Tag.ToString());
  76. }
  77. }
  78. }