dotnet/winforms

The element added to the group is not displayed in the ListView after adding of group

Open

#3.987 geöffnet am 23. Sept. 2020

Auf GitHub ansehen
 (5 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)C# (922 Forks)batch import
:beetle: bugarea-controls-ListViewhelp wanted

Repository-Metriken

Stars
 (4.100 Stars)
PR-Merge-Metriken
 (Durchschn. Merge 14T 22h) (56 gemergte PRs in 30 T)

Beschreibung

  • .NET Core Version: 5.0.100-rc.1.20420.14

  • Have you experienced this same bug with .NET Framework?: Yes, tested in net472, netcoreapp3.1

Repro steps:

  1. Create application with ListView.
  2. Create ListViewGroup
  3. Add ListViewItem to ListViewGroup
  4. Add ListViewGroup to ListView.
  5. Or use attached project WindowsFormsApp3.zip

Actual: ListViewItem is not displayed in ListView because ListItemView.ListView = null. I think ListView should be set for item when we add group with this item to ListView.

As a result ListViewItem.AccesibleObject may either throw InvalidOperationException, when attempting to access an item which added to a group, but have not link to the listview (2), or have a stable/incorrect reference to the listview when its group is removed from the listview (3)

Expected:

  1. ListViewItem is displayed in ListView, if added to a group which is then added to a listview.
  2. ListViewItem has a reference to the listview, when a group is added to the listview
  3. ListViewItem has a reference to the listview removed, when a group is removed from the listview

Notes:

   var group = new ListViewGroup("Test group");

   // this item is not shown in the listview, and doens't have reference to listview
   // i.e. item1.ListView = null
   ListViewItem item1 = new ListViewItem("You don't see me");
   group.Items.Add(item1);
   listView2.Groups.Add(group);

   // this items is shown in the listview, item2.ListView <-- listView2
   ListViewItem item2 = new ListViewItem("You see me", group);
   listView2.Items.Add(item2);

Contributor Guide