<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      yinyuessh

      導航

      自定義具有通知功能的字典-ObservableDictionary

      自定義具有通知功能的字典-ObservableDictionary

      public class ObservableDictionary<TKey, TValue> : Dictionary<TKey, TValue>, INotifyCollectionChanged, INotifyPropertyChanged where TKey : notnull
      {
          private int _index;
          public event NotifyCollectionChangedEventHandler? CollectionChanged;
          public event PropertyChangedEventHandler? PropertyChanged;
      
          public new KeyCollection Keys
          {
              get { return base.Keys; }
          }
      
          public new ValueCollection Values
          {
              get { return base.Values; }
          }
      
          public new int Count
          {
              get { return base.Count; }
          }
      
          public new TValue this[TKey key]
          {
              get { return this.GetValue(key); }
              set { this.SetValue(key, value); }
          }
      
          public TValue this[int index]
          {
              get { return this.GetIndexValue(index); }
              set { this.SetIndexValue(index, value); }
          }
      
          public new void Add(TKey key, TValue value)
          {
              base.Add(key, value);
              this.OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add, this.FindPair(key), _index));
              OnPropertyChanged(nameof(Keys));
              OnPropertyChanged(nameof(Values));
              OnPropertyChanged(nameof(Count));
          }
      
          public new void Clear()
          {
              base.Clear();
              this.OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
              OnPropertyChanged(nameof(Keys));
              OnPropertyChanged(nameof(Values));
              OnPropertyChanged(nameof(Count));
          }
      
          public new bool Remove(TKey key)
          {
              var pair = this.FindPair(key);
              if (base.Remove(key))
              {
                  this.OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Remove, pair, _index));
                  OnPropertyChanged(nameof(Keys));
                  OnPropertyChanged(nameof(Values));
                  OnPropertyChanged(nameof(Count));
                  return true;
              }
              return false;
          }
      
          protected void OnCollectionChanged(NotifyCollectionChangedEventArgs e)
          {
              if (this.CollectionChanged != null)
              {
                  this.CollectionChanged(this, e);
              }
          }
      
          protected void OnPropertyChanged(string propertyName)
          {
              if (this.PropertyChanged != null)
              {
                  this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
              }
          }
      
          private TValue GetIndexValue(int index)
          {
              for (int i = 0; i < this.Count; i++)
              {
                  if (i == index)
                  {
                      var pair = this.ElementAt(i);
                      return pair.Value;
                  }
              }
      
              return default;
          }
      
          private void SetIndexValue(int index, TValue value)
          {
              try
              {
                  var pair = this.ElementAtOrDefault(index);
                  SetValue(pair.Key, value);
              }
              catch (Exception)
              {
      
              }
          }
      
          private TValue GetValue(TKey key)
          {
              if (base.ContainsKey(key))
              {
                  return base[key];
              }
              else
              {
                  return default;
              }
          }
      
          private void SetValue(TKey key, TValue value)
          {
              if (base.ContainsKey(key))
              {
                  var pair = this.FindPair(key);
                  int index = _index;
                  base[key] = value;
                  var newpair = this.FindPair(key);
                  this.OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Replace, newpair, pair, index));
                  OnPropertyChanged(nameof(Values));
                  OnPropertyChanged("Item[]");
              }
              else
              {
                  this.Add(key, value);
              }
          }
      
          private KeyValuePair<TKey, TValue> FindPair(TKey key)
          {
              _index = 0;
              foreach (var item in this)
              {
                  if (item.Key.Equals(key))
                  {
                      return item;
                  }
                  _index++;
              }
              return default;
          }
      
          private int IndexOf(TKey key)
          {
              int index = 0;
              foreach (var item in this)
              {
                  if (item.Key.Equals(key))
                  {
                      return index;
                  }
                  index++;
              }
              return -1;
          }
      
      
      }
      

      posted on 2024-05-22 08:26  音樂隨生活  閱讀(123)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 国产黄色一区二区三区四区| 高清无码爆乳潮喷在线观看| 免费观看羞羞视频网站| 人妻无码久久久久久久久久久| 日本美女性亚洲精品黄色| 国产网曝门亚洲综合在线| 色噜噜亚洲男人的天堂| av鲁丝一区鲁丝二区鲁丝三区| 国产精品区一区第一页| 亚洲一区二区三区丝袜| 亚洲国产欧美在线看片一国产| 国产精品久久自在自线不卡| 免费福利视频一区二区三区高清| 午夜精品福利亚洲国产| 免费可以在线看a∨网站| 天堂久久久久VA久久久久| 92成人午夜福利一区二区| 少妇爽到呻吟的视频| 潮喷失禁大喷水av无码| 日韩精品亚洲专在线电影| 国产迷姦播放在线观看| 人人人爽人人爽人人av| 蜜臀av黑人亚洲精品| 国产成人AV男人的天堂| 在线观看中文字幕国产码| 在线观看美女网站大全免费| 午夜精品久久久久久久爽 | 色婷婷五月综合亚洲小说| 亚洲精品不卡av在线播放| 岛国av无码免费无禁网站| 精品亚洲香蕉久久综合网| 国产精品毛片一区二区| 日韩人妻无码一区二区三区99 | 亚洲av日韩av永久无码电影| 国产成人a∨激情视频厨房| 免费人成网站视频在线观看| 亚洲日本欧美日韩中文字幕| 无码人妻一区二区三区AV| 边摸边吃奶边做爽动态| 亚洲小说乱欧美另类| 国产强奷在线播放免费|