public void UpdateProjectItem(ProjectItem item) { VirtualizingItemContainer itemContainer = m_treeView.GetItemContainer(item); if (itemContainer != null) { m_treeView.DataBindItem(item, itemContainer); } }
public virtual void InsertItems(ProjectItem[] items, bool selectAndScrollIntoView) { if (m_folders == null) { return; } items = items.Where(item => m_folders.Contains(item.Parent) && CanDisplayItem(item)).ToArray(); if (items.Length == 0) { return; } m_items = m_items.Union(items).ToList(); List <ProjectItem> sorted = m_items.Where(item => item.IsFolder).OrderBy(item => item.Name).Union(m_items.Where(item => !item.IsFolder).OrderBy(item => item.Name)).ToList(); ProjectItem selectItem = null; for (int i = 0; i < sorted.Count; ++i) { if (items.Contains(sorted[i])) { m_listBox.Insert(i, sorted[i]); selectItem = sorted[i]; } else { VirtualizingItemContainer itemContainer = m_listBox.GetItemContainer(sorted[i]); if (itemContainer != null) { m_listBox.DataBindItem(sorted[i], itemContainer); } } if (!m_idToItem.ContainsKey(sorted[i].ItemID)) { m_idToItem.Add(sorted[i].ItemID, sorted[i]); } } m_items = sorted; if (selectItem != null) { if (selectAndScrollIntoView) { m_listBox.SelectedItem = selectItem; m_listBox.ScrollIntoView(selectItem); } } }