public virtual void SwapItems(IList <IList <ICell> > newItems, int column) { IList <IList <ICell> > oldItems = mCellRecyclerViewAdapter.GetItems(); // Set new items without calling notifyCellDataSetChanged method of CellRecyclerViewAdapter mCellRecyclerViewAdapter.SetItems((IList <IList <Adapter.ICell> >)newItems, !mEnableAnimation); if (mEnableAnimation) { // Find the differences between old cell items and new items. ColumnSortCallback diffCallback = new ColumnSortCallback(oldItems, newItems, column); DiffUtil.DiffResult diffResult = DiffUtil.CalculateDiff(diffCallback); diffResult.DispatchUpdatesTo(mCellRecyclerViewAdapter); diffResult.DispatchUpdatesTo(mRowHeaderRecyclerViewAdapter); } }
private void SwapItems(IList <IList <ICell> > oldItems, IList <IList <ICell> > newItems, int column, IList <IRowHeader> newRowHeader, SortState sortState) { // Set new items without calling notifyCellDataSetChanged method of CellRecyclerViewAdapter mCellRecyclerViewAdapter.SetItems(newItems, !mEnableAnimation); mRowHeaderRecyclerViewAdapter.SetItems(newRowHeader, !mEnableAnimation); if (mEnableAnimation) { // Find the differences between old cell items and new items. ColumnSortCallback diffCallback = new ColumnSortCallback(oldItems, newItems, column); DiffUtil.DiffResult diffResult = DiffUtil.CalculateDiff(diffCallback); diffResult.DispatchUpdatesTo(mCellRecyclerViewAdapter); diffResult.DispatchUpdatesTo(mRowHeaderRecyclerViewAdapter); } foreach (ColumnSortStateChangedListener listener in columnSortStateChangedListeners) { listener.OnColumnSortStatusChanged(column, sortState); } }