summaryrefslogtreecommitdiff
path: root/ElmSharp/ElmSharp/GenGrid.cs
diff options
context:
space:
mode:
Diffstat (limited to 'ElmSharp/ElmSharp/GenGrid.cs')
-rw-r--r--[-rwxr-xr-x]ElmSharp/ElmSharp/GenGrid.cs12
1 files changed, 6 insertions, 6 deletions
diff --git a/ElmSharp/ElmSharp/GenGrid.cs b/ElmSharp/ElmSharp/GenGrid.cs
index be8c5ec..2b1a6ee 100755..100644
--- a/ElmSharp/ElmSharp/GenGrid.cs
+++ b/ElmSharp/ElmSharp/GenGrid.cs
@@ -473,17 +473,17 @@ namespace ElmSharp
/// <param name="data">The item data.</param>
/// <param name="func">User defined comparison function that defines the sort order based on gengrid item and its data.</param>
/// <returns>Return a gengrid item that contains data and itemClass.</returns>
- public GenGridItem InsertSorted(GenItemClass itemClass, object data, Comparison<GenGridItem> comparison)
+ public GenGridItem InsertSorted(GenItemClass itemClass, object data, Comparison<object> comparison)
{
+ GenGridItem item = new GenGridItem(data, itemClass);
+
Interop.Elementary.Eina_Compare_Cb compareCallback = (handle1, handle2) =>
{
- GenGridItem item1 = ItemObject.GetItemByHandle(handle1) as GenGridItem;
- GenGridItem item2 = ItemObject.GetItemByHandle(handle2) as GenGridItem;
- return comparison(item1, item2);
+ GenGridItem first = (ItemObject.GetItemByHandle(handle1) as GenGridItem) ?? item;
+ GenGridItem second = (ItemObject.GetItemByHandle(handle2) as GenGridItem) ?? item;
+ return comparison(first.Data, second.Data);
};
- GenGridItem item = new GenGridItem(data, itemClass);
-
IntPtr handle = Interop.Elementary.elm_gengrid_item_sorted_insert(RealHandle, itemClass.UnmanagedPtr, (IntPtr)item.Id, compareCallback, null, (IntPtr)item.Id);
item.Handle = handle;
AddInternal(item);