0

我有完全实现 MVVM 的 DataGrid。我注意到,当我对一列进行排序并且该列有几行具有相同的值时,这些行继续被打乱。让我用下面的例子来解释:

CAR | Brand | Color
-------------------
 1  | Honda | Red
 2  | Ford  | Blue
 3  | GMC   | Red

如果我按“颜色”对该表进行排序。排序会很好,但第 1 行和第 3 行将继续更改/交换。

我必须说我的 ViewModel 有一个线程来不断更新数据。基本上,该线程在查询数据后执行此操作:

mCollectionViewSource.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Send,
  new Action(delegate()
  {
    if (!mObservableCollection.Contains(newDataObject))
    {
      mObservableCollection.Add(newDataObject);
    }
    else
    {
      int index = mObservableCollection.IndexOf(newDataObject);
      mObservableCollection[index] = newDataObject;
    }
  }));
4

0 回答 0