Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/11/10 18:16:41 (14 years ago)
Author:
swagner
Message:

Implemented reviewers' comments (#893)

  • added automatic re-selection of elements in collection views when the content of the view is changed
Location:
trunk/sources/HeuristicLab.Core.Views/3.3
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Core.Views/3.3/ItemArrayView.cs

    r3764 r3775  
    8484    protected override void OnContentChanged() {
    8585      base.OnContentChanged();
     86
     87      int selectedIndex = -1;
     88      if (itemsListView.SelectedItems.Count == 1) selectedIndex = itemsListView.SelectedIndices[0];
     89
    8690      while (itemsListView.Items.Count > 0) RemoveListViewItem(itemsListView.Items[0]);
    8791      viewHost.Content = null;
     
    9094        foreach (T item in Content)
    9195          AddListViewItem(CreateListViewItem(item));
     96        if ((selectedIndex != -1) && (selectedIndex < itemsListView.Items.Count))
     97          itemsListView.Items[selectedIndex].Selected = true;
    9298      }
    9399      SetEnabledStateOfControls();
  • trunk/sources/HeuristicLab.Core.Views/3.3/ItemListView.cs

    r3764 r3775  
    8888    protected override void OnContentChanged() {
    8989      base.OnContentChanged();
     90
     91      int selectedIndex = -1;
     92      if (itemsListView.SelectedItems.Count == 1) selectedIndex = itemsListView.SelectedIndices[0];
     93
    9094      while (itemsListView.Items.Count > 0) RemoveListViewItem(itemsListView.Items[0]);
    9195      viewHost.Content = null;
     
    9397        foreach (T item in Content)
    9498          AddListViewItem(CreateListViewItem(item));
     99        if ((selectedIndex != -1) && (selectedIndex < itemsListView.Items.Count))
     100          itemsListView.Items[selectedIndex].Selected = true;
    95101      }
    96102      SetEnabledStateOfControls();
  • trunk/sources/HeuristicLab.Core.Views/3.3/NamedItemCollectionView.cs

    r3764 r3775  
    5151      base.RegisterContentEvents();
    5252      Content.ItemsReplaced += new CollectionItemsChangedEventHandler<T>(Content_ItemsReplaced);
     53    }
     54
     55    protected override void OnContentChanged() {
     56      string selectedName = null;
     57      if ((itemsListView.SelectedItems.Count == 1) && (itemsListView.SelectedItems[0].Tag != null))
     58        selectedName = ((T)itemsListView.SelectedItems[0].Tag).Name;
     59      base.OnContentChanged();
     60      if (selectedName != null) {
     61        foreach (ListViewItem item in itemsListView.Items) {
     62          if ((item.Tag != null) && (((T)item.Tag).Name.Equals(selectedName)))
     63            item.Selected = true;
     64        }
     65      }
    5366    }
    5467
Note: See TracChangeset for help on using the changeset viewer.