void IView.UpdateItems(IEnumerable <ViewItem> items, ViewUpdateFlags flags) { metrics = null; isUpdating = true; listBox.BeginUpdate(); if ((flags & ViewUpdateFlags.ItemsCountDidNotChange) != 0 && (flags & ViewUpdateFlags.SelectionDidNotChange) != 0) { var itemIdx = 0; foreach (var i in items) { listBox.Items[itemIdx++] = new BookmarkItem(i); } } else { listBox.Items.Clear(); foreach (var i in items) { var itemIdx = listBox.Items.Add(new BookmarkItem(i)); if (i.IsSelected) { listBox.SelectedIndices.Add(itemIdx); } } } listBox.EndUpdate(); isUpdating = false; }
void IView.UpdateItems(IEnumerable <ViewItem> viewItems, ViewUpdateFlags flags) { isUpdating = true; var items = dataSource.items; items.Clear(); items.AddRange(viewItems.Select((d, i) => new Item(this, d, i))); tableView.ReloadData(); tableView.SelectRows( NSIndexSet.FromArray(items.Where(i => i.Data.IsSelected).Select(i => i.Index).ToArray()), byExtendingSelection: false ); UpdateTimeDeltasColumn(); isUpdating = false; }
void UpdateViewInternal(IEnumerable <IBookmark> newSelection, ViewUpdateFlags flags) { view.UpdateItems(EnumBookmarkForView( newSelection != null ? newSelection.ToLookup(b => b) : view.SelectedBookmarks.ToLookup(b => b)), flags); UpdateFocusedMessagePosition(); }