using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; namespace TeamAAS_VP.Models { /// /// 综合结果 /// public class AnalysisResult : INotifyPropertyChanged { private double _sharpness; private CheckerboardResult _checkerboard = new CheckerboardResult(); private double _qualityScore; private int _frameCount; private double _bestSharpness; private DateTime _analysisTime; private ObservableCollection _suggestions = new ObservableCollection(); public double Sharpness { get => _sharpness; set => SetField(ref _sharpness, value); } public CheckerboardResult Checkerboard { get => _checkerboard; set => SetField(ref _checkerboard, value); } public double QualityScore { get => _qualityScore; set => SetField(ref _qualityScore, value); } public int FrameCount { get => _frameCount; set => SetField(ref _frameCount, value); } public double BestSharpness { get => _bestSharpness; set => SetField(ref _bestSharpness, value); } public DateTime AnalysisTime { get => _analysisTime; set => SetField(ref _analysisTime, value); } public ObservableCollection Suggestions { get => _suggestions; set => SetField(ref _suggestions, value); } public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } protected bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null) { if (EqualityComparer.Default.Equals(field, value)) return false; field = value; OnPropertyChanged(propertyName); return true; } } }