Невозможно выполнить операцию Up-down при сортировке wpf datagrid - PullRequest
2 голосов
/ 28 июля 2010

HI,

У меня есть сетка данных (из набора инструментов wpf), которая связана с наблюдаемой коллекцией.Есть две кнопки «Вверх» и «Вниз», которые соответственно перемещают выбранную строку.Например: если в таблице данных есть 10 элементов, и если я выбираю 4-й элемент и нажимаю стрелку «Вверх», то 4-й элемент будет перемещен в 3-й элемент, а предыдущий 3-й элемент будет 4-м элементом.т.е. обмен с предыдущим пунктом.Аналогично стрелка «вниз» в другую сторону.

private void BtnUpArrowClick (отправитель объекта, RoutedEventArgs e) {

  try
  {
    btnDownArrow.IsEnabled = true;
    currentRow = grdSeqData.SelectedIndex;
    if (currentRow == 0)
    {
      btnUpArrow.IsEnabled = false;
    }
    else
    {
      upRow = currentRow - 1;
      if (upRow >= 0)
      {
        sequenceDataList.Move(currentRow, upRow);
        currentRow = upRow;
      }
      else
      {
        btnUpArrow.IsEnabled = false;
      }
    }
  }
  catch (Exception ex)
  {
    CatchExeption(LanguageHandler.GetCurrentCultureText("EventUpArrow_Exception"), ex);
  }
}

Приведенный выше код работает нормально, когда сетка данных не отсортирована.Когда я сортирую сетку данных через заголовок, нажимаю, а затем выполняю операцию «Вверх» или «Вниз», в сетке данных ничего не отражается.

Вид сортируется, так как моя коллекция в папке остается неизменной.Поэтому я попытался переместить коллекцию из вида, но тщетно.

ICollectionView view = CollectionViewSource.GetDefaultView (grdSeqData.ItemsSource) as ListCollectionView;view.MoveCurrentToNext ();

Я думаю, что при применении сортировки сетки данных представление не будет соответственно перемещаться.Пожалуйста, помогите.

...