title: What causes a ListChangedType.ItemMoved ListChange Event in a BindingList<T>?
body: <p>I have a <strong>BindingList(T)</strong> that I am displaying in a <strong>DataGrid</strong>. I'm watching for <strong>ListChanged</strong> events and performing different actions when the <strong>ListChanged</strong> event is evoked.</p>
  
  <p>I'm checking the <strong>ListChangeType</strong> argument of the event to check how the list was changed, and then responding accordingly. However, I noticed that there is a <strong>ListChanged</strong> event type <strong>ItemMoved</strong>.</p>
  
  <p>I have buttons for "Move Up" and "Move Down" to move items up and down the list. But these are actually removing the selected item, and then reinserting it at a higher or lower position.</p>
  
  <p>However, I don't see any method of <strong>BindingList(T)</strong> that looks like it would move an item in the list. So am I missing something or is there just no way to move an item in a BindingList that would also evoke a ItemMoved type ListChanged event?</p>
  
  <pre><code>void FloorCollection_ListChanged(object sender, ListChangedEventArgs e)
  {
      if (e.ListChangedType == ListChangedType.ItemAdded)
      {    
          //DO STUFF
      }
      else if (e.ListChangedType == ListChangedType.ItemDeleted)
      {
          //DO STUFF
      }
      else if (e.ListChangedType == ListChangedType.ItemMoved)
      {
          //HOW DO I GET THIS CODE TO RUN?
      }
      else if (e.ListChangedType == ListChangedType.ItemChanged)
      {
          //DO STUFF
      }
  }
  </code></pre>