Partie inventaire qui marche

master
Thomas Chazot 2 years ago
parent be00c4bcb0
commit 18f5385ab4

@ -37,37 +37,45 @@
</div> </div>
<div class="col-6"> <div class="col-6">
<div>Available items:</div> @foreach (var item in Items)
{
<InventoryItem Item="item" NoDrop="true" />
}
<div> </div>
<DataGrid TItem="Item" <!--
Data="@Items" <div>Available items:</div>
ReadData="@OnReadData"
TotalItems="@totalItem"
PageSize="10"
ShowPager
Sortable="true">
<button type="submit" @onclick="() => SortByName()"></button> <div>
<DataGridColumn TItem="Item" Field="@nameof(Item.Id)"> <DataGrid TItem="Item"
<DisplayTemplate> Data="@Items"
@if (!string.IsNullOrWhiteSpace(context.ImageBase64)) ReadData="@OnReadData"
{ TotalItems="@totalItem"
<img src="data:image/png;base64, @(context.ImageBase64)" class="img-thumbnail" title="@context.DisplayName" alt="@context.DisplayName" style="min-width: 50px; max-width: 50px" /> PageSize="10"
} ShowPager
else Sortable="true">
{
<img src="images/default.png" class="img-thumbnail" title="@context.DisplayName" alt="@context.DisplayName" style="max-width: 150px" />
}
</DisplayTemplate>
</DataGridColumn>
<DataGridColumn TItem="Item" Field="@nameof(Item.DisplayName)" />
</DataGrid>
</div> <button type="submit" @onclick="() => SortByName()"></button>
<DataGridColumn TItem="Item" Field="@nameof(Item.Id)">
<DisplayTemplate>
@if (!string.IsNullOrWhiteSpace(context.ImageBase64))
{
<img src="data:image/png;base64, @(context.ImageBase64)" class="img-thumbnail" title="@context.DisplayName" alt="@context.DisplayName" style="min-width: 50px; max-width: 50px" />
}
else
{
<img src="images/default.png" class="img-thumbnail" title="@context.DisplayName" alt="@context.DisplayName" style="max-width: 150px" />
}
</DisplayTemplate>
</DataGridColumn>
<DataGridColumn TItem="Item" Field="@nameof(Item.DisplayName)" />
</DataGrid>
</div>
</div>
-->
</div> </div>
</div>
</div> </div>
</CascadingValue> </CascadingValue>

@ -28,11 +28,8 @@ namespace BlazorApp.Components
public InventoryComp() public InventoryComp()
{ {
this.InventoryItems = new List<Item> { }; this.InventoryItems = new List<Item>(new Item[18]);
for (int i = 0; i < 18; i++)
{
this.InventoryItems.Append(null);
}
} }
private async Task OnReadData(DataGridReadDataEventArgs<Item> e) private async Task OnReadData(DataGridReadDataEventArgs<Item> e)
@ -54,5 +51,10 @@ namespace BlazorApp.Components
Items = await DataService.SortedList(); Items = await DataService.SortedList();
} }
public void refresh()
{
StateHasChanged();
}
} }
} }

@ -4,7 +4,8 @@
@ondragstart="@OnDragStart" @ondragstart="@OnDragStart"
@ondrop="@OnDrop" @ondrop="@OnDrop"
@ondragenter="@OnDragEnter" @ondragenter="@OnDragEnter"
@ondragleave="@OnDragLeave"> @ondragleave="@OnDragLeave"
@ondragend="@OnDragEnd" >
@if (Item != null) @if (Item != null)
{ {

@ -44,15 +44,50 @@ namespace BlazorApp.Components
return; return;
} }
Parent.InventoryItems[Parent.CurrentDragIndex] = this.Item; if (Parent.CurrentDragItem != null)
this.Item = Parent.CurrentDragItem; {
Parent.InventoryItems[this.Index] = this.Item; Item tmp = this.Item;
this.Item = Parent.CurrentDragItem;
Parent.InventoryItems[this.Index] = this.Item;
Parent.CurrentDragItem = tmp;
Parent.CurrentDragIndex = this.Index;
}
} }
private void OnDragStart() private void OnDragStart()
{ {
Parent.CurrentDragIndex = this.Index;
Parent.CurrentDragItem = this.Item; Parent.CurrentDragItem = this.Item;
if (this.Item != null)
{
if (!NoDrop)
{
Parent.CurrentDragIndex = this.Index;
this.Item = null;
Parent.InventoryItems[Index] = null;
}
else
{
Parent.CurrentDragIndex = -1;
}
}
}
internal void OnDragEnd()
{
if (NoDrop || Parent.CurrentDragItem==null)
{
return;
}
if (Parent.CurrentDragIndex != -1 && Parent.CurrentDragIndex!=this.Index)
{
Parent.InventoryItems[this.Index] = this.Item;
this.Item = Parent.CurrentDragItem;
}
Parent.CurrentDragIndex = -1;
Parent.CurrentDragItem = null;
} }
} }
} }

Loading…
Cancel
Save