AnalysisResult.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Collections.ObjectModel;
  4. using System.ComponentModel;
  5. using System.Linq;
  6. using System.Runtime.CompilerServices;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. namespace TeamAAS_VP.Models
  10. {
  11. /// <summary>
  12. /// 综合结果
  13. /// </summary>
  14. public class AnalysisResult : INotifyPropertyChanged
  15. {
  16. private double _sharpness;
  17. private CheckerboardResult _checkerboard = new CheckerboardResult();
  18. private double _qualityScore;
  19. private int _frameCount;
  20. private double _bestSharpness;
  21. private DateTime _analysisTime;
  22. private ObservableCollection<string> _suggestions = new ObservableCollection<string>();
  23. public double Sharpness
  24. {
  25. get => _sharpness;
  26. set => SetField(ref _sharpness, value);
  27. }
  28. public CheckerboardResult Checkerboard
  29. {
  30. get => _checkerboard;
  31. set => SetField(ref _checkerboard, value);
  32. }
  33. public double QualityScore
  34. {
  35. get => _qualityScore;
  36. set => SetField(ref _qualityScore, value);
  37. }
  38. public int FrameCount
  39. {
  40. get => _frameCount;
  41. set => SetField(ref _frameCount, value);
  42. }
  43. public double BestSharpness
  44. {
  45. get => _bestSharpness;
  46. set => SetField(ref _bestSharpness, value);
  47. }
  48. public DateTime AnalysisTime
  49. {
  50. get => _analysisTime;
  51. set => SetField(ref _analysisTime, value);
  52. }
  53. public ObservableCollection<string> Suggestions
  54. {
  55. get => _suggestions;
  56. set => SetField(ref _suggestions, value);
  57. }
  58. public event PropertyChangedEventHandler PropertyChanged;
  59. protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
  60. {
  61. PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
  62. }
  63. protected bool SetField<T>(ref T field, T value, [CallerMemberName] string propertyName = null)
  64. {
  65. if (EqualityComparer<T>.Default.Equals(field, value)) return false;
  66. field = value;
  67. OnPropertyChanged(propertyName);
  68. return true;
  69. }
  70. }
  71. }