* Added Move Function * Fixed #364 * Quick fix as the issue still sort of persisted. * Update ModToIdConverter.cs * Fixed the logic inverse.
This commit is contained in:
@@ -32,9 +32,14 @@ namespace Torch.Server.Views.Converters
|
||||
{
|
||||
//if (targetType != typeof(int))
|
||||
// throw new NotSupportedException("ModToIdConverter can only convert mods into int values or vise versa!");
|
||||
var mod = (ModItemInfo) values[0];
|
||||
var theModList = (MtObservableList<ModItemInfo>) values[1];
|
||||
return theModList.IndexOf(mod);
|
||||
if (values[0] is ModItemInfo mod && values[1] is MtObservableList<ModItemInfo> modList)
|
||||
{
|
||||
return modList.IndexOf(mod);
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@@ -205,9 +205,9 @@ namespace Torch.Server.Views
|
||||
{
|
||||
_hasOrderChanged = true;
|
||||
var modList = (MtObservableList<ModItemInfo>)DataContext;
|
||||
//modList.Move(modList.IndexOf(_draggedMod), modList.IndexOf(targetMod));
|
||||
modList.RemoveAt(modList.IndexOf(_draggedMod));
|
||||
modList.Insert(modList.IndexOf(targetMod), _draggedMod);
|
||||
modList.Move(modList.IndexOf(targetMod), _draggedMod);
|
||||
//modList.RemoveAt(modList.IndexOf(_draggedMod));
|
||||
//modList.Insert(modList.IndexOf(targetMod), _draggedMod);
|
||||
ModList.Items.Refresh();
|
||||
ModList.SelectedItem = _draggedMod;
|
||||
}
|
||||
|
@@ -189,5 +189,15 @@ namespace Torch.Collections
|
||||
|
||||
/// <inheritdoc/>
|
||||
bool IList.IsFixedSize => false;
|
||||
|
||||
/// <inheritdoc/>
|
||||
public void Move(int newIndex, object value)
|
||||
{
|
||||
if (value is T t)
|
||||
{
|
||||
base.Remove(t);
|
||||
}
|
||||
Insert(newIndex, (T)value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user