using Standard; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Collections.Specialized; using System.ComponentModel; using System.Globalization; using System.IO; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; using System.Windows.Data; using System.Windows.Input; using System.Windows.Threading; using System.Xml.Linq; using static System.Windows.Forms.VisualStyles.VisualStyleElement.Header; using static VideoConcat.Models.VideoModel; namespace VideoConcat.Models { public class ExtractWindowModel : INotifyPropertyChanged { private string _folderPath = ""; private string _helpInfo = ""; private bool _canExtractFrame = false; private bool _canModify = false; private bool _isCanOperate = false; private bool _isStart = false; private string[] _videos = []; private Dispatcher _dispatcher; public string[] videos { get => _videos; set { _videos = value; OnPropertyChanged(); } } public bool IsCanOperate { get => _isCanOperate; set { _isCanOperate = value; OnPropertyChanged(); } } public bool IsStart { get => _isStart; set { _isStart = value; OnPropertyChanged(); } } public Dispatcher Dispatcher { get => _dispatcher; set { _dispatcher = value; } } public class VideoStruct { public int Index { set; get; } public string FileName { set; get; } = ""; public string Size { set; get; } = ""; public int Seconds { set; get; } public string Status { set; get; } = ""; public string Progress { set; get; } = ""; } public string FolderPath { get { return _folderPath; } set { _folderPath = value; OnPropertyChanged(nameof(FolderPath)); } } public string HelpInfo { get { return _helpInfo; } set { _helpInfo = value; OnPropertyChanged(); } } public bool CanExtractFrame { get { return _canExtractFrame; } set { _canExtractFrame = value; OnPropertyChanged(nameof(CanExtractFrame)); } } public bool CanModify { get { return _canModify; } set { _canModify = value; OnPropertyChanged(nameof(CanModify)); } } public ICommand? BtnOpenFolderCommand { get; set; } public ICommand? BtnStartVideoConcatCommand { get; set; } public ICommand? BtnStartVideoModifyCommand { get; set; } public ICommand? BtnChooseAuditImageCommand { get; set; } public event PropertyChangedEventHandler? PropertyChanged; protected virtual void OnPropertyChanged([CallerMemberName] string? propertyName = null) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } public ExtractWindowModel() { _dispatcher = Dispatcher.CurrentDispatcher; } public void SetCanStart() { CanExtractFrame = false; if (videos.Length > 0) { CanModify = true; } else { CanModify = false; } } } }