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 ();
Я думаю, что при применении сортировки сетки данных представление не будет соответственно перемещаться.Пожалуйста, помогите.