When I drag an item to a higher place(it means lower position index) its working fine(in the same Section), but if I try to a lower place(it means higher position index)(in the same Section) nothing happening.
MudCoantainer ItemDropped method:
private void ItemUpdated(MudItemDropInfo<DropZoneItem> dropItem)
{
dropItem.Item.Zone = dropItem.DropzoneIdentifier;
var indexOffset = _items.Count(x => x.Zone == dropItem.DropzoneIdentifier);
var actualId = 0;
if (Key == "edit" && dropItem.Item.Zone == "_header")
{
foreach (var item in _section)
{
if (item.DocumentId == doc.Id && item.Name == "_header")
{
actualId = item.Id;
}
}
}
foreach (var actualSection in sections)
{
if (actualSection.DocumentId == doc.Id)
{
if (actualSection.Name == dropItem.DropzoneIdentifier)
{
actualId = actualSection.Id;
}
}
}
var itemToUpdate = _items.FirstOrDefault(item => item.Id == dropItem.Item.Id);
if (itemToUpdate != null)
{
itemToUpdate.SectionId = actualId;
}
foreach (var item in sections)
{
if (dropItem.Item.Zone == item.Name)
{
dropItem.Item.SectionPosition = item.Position;
dropItem.Item.SectionId = item.Id;
}
}
_items.UpdateOrder(dropItem, item => item.Position, indexOffset);
_items = _items.OrderBy(x => x.Position).Select(item => new DropZoneItem
{
Id = item.Id,
Zone = item.Zone,
Name = item.Name,
Type = item.Type,
Description = item.Description,
Position = item.Position,
SectionId = item.SectionId,
EnabledValue = item.EnabledValue,
SectionPosition = item.SectionPosition
})
.ToList();
}
Note: I need this method, because i need to update _items list and something else.
I tried different ways, but i dont know whats the problem.