Пример #1
0
 void ResetBindingList(IList list)
 {
     if (BindingListAllowItemMoving)
     {
         BindingList.Clear();
         foreach (object item in list)
         {
             BindingList.Add(item);
         }
     }
     else
     {
         bool bindingListChanged = false;
         foreach (object item in new List <object>(BindingList.GetGenericEnumerable <object>()))
         {
             if (list.IndexOf(item) < 0)
             {
                 bindingListChanged = true;
                 BindingList.Remove(item);
             }
         }
         foreach (object item in list)
         {
             if (!BindingList.Contains(item))
             {
                 bindingListChanged = true;
                 BindingList.Add(item);
             }
         }
         if (bindingListChanged)
         {
             bindingListChangingInProgress = false;
             if (BindingList is INotifyCollectionChanged)
             {
                 OnCollectionChanged(BindingList, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
             }
             else
             {
                 if (BindingList is IBindingList)
                 {
                     OnBindingListListChanged(BindingList, new ListChangedEventArgs(ListChangedType.Reset, -1));
                 }
             }
         }
     }
 }