排序后WPF DataGrid行洗牌

时间:2013-05-28 15:07:14

标签: c# wpf sorting mvvm datagrid

我有完全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;
    }
  }));

0 个答案:

没有答案