public void InsertItems(int index, SyncMenuItemEntity parentItem, List<SyncMenuItemEntity> items, object userData) { Console.WriteLine("SyncMenuWindowController - InsertItems - index: {0} items.Count: {1}", index, items.Count); InvokeOnMainThread(delegate { var item = _items.FirstOrDefault(x => x.Entity == parentItem); // Try to search in subitems if(item == null) foreach(var currentItem in _items) foreach(var subItem in currentItem.SubItems) if(subItem.Entity == parentItem) { item = subItem; break; } if(item == null) return; // Clear dummy node and add actual items item.SubItems.Clear(); foreach(var entity in items) { var newItem = new SyncMenuItem(entity); if(entity.ItemType != SyncMenuItemEntityType.Song) newItem.SubItems.Add(new SyncMenuItem(new SyncMenuItemEntity(){ ArtistName = "dummy", AlbumTitle = "dummy" })); item.SubItems.Add(newItem); } outlineView.ReloadData(); }); }
public void RefreshItems(List<SyncMenuItemEntity> items) { Console.WriteLine("SyncMenuWindowController - RefreshItems - items count: {0}", items.Count); InvokeOnMainThread(delegate { _items.Clear(); foreach(var item in items) { var syncMenuItem = new SyncMenuItem(item); syncMenuItem.SubItems.Add(new SyncMenuItem(new SyncMenuItemEntity(){ ArtistName = "dummy", AlbumTitle = "dummy" })); _items.Add(syncMenuItem); } outlineView.ReloadData(); }); }