using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; namespace ClashDotNetFramework.Models.Items { public class ProxyItem : INotifyPropertyChanged { #region 属性改变事件 public event PropertyChangedEventHandler PropertyChanged; private void NotifyPropertyChanged([CallerMemberName] String propertyName = "") { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } #endregion #region 内部变量 private long _latency { get; set; } = -2; private bool _selected { get; set; } #endregion #region 通用设置 /// /// 代理名称 /// public string Name { get; set; } /// /// 代理类型 /// public string Type { get; set; } /// /// 属于哪个Group (Selector等等) /// public string Group { get; set; } /// /// 代理延迟 /// -1 代表超时 /// -2 代表未测试 /// public long Latency { get { return _latency; } set { if (value != this._latency) { this._latency = value; NotifyPropertyChanged(); } } } /// /// 是否被选择 /// public bool IsSelected { get { return this._selected; } set { if (value != this._selected) { this._selected = value; NotifyPropertyChanged(); } } } #endregion #region 公开函数 public void NotifyBackgroundChange() { NotifyPropertyChanged("IsSelected"); } #endregion } }