dotnet/winforms
在 GitHub 查看The element added to the group is not displayed in the ListView after adding of group
Open
#3,987 建立於 2020年9月23日
:beetle: bugarea-controls-ListViewhelp wanted
倉庫指標
- Star
- (4,100 star)
- PR 合併指標
- (平均合併 14天 22小時) (30 天內合併 56 個 PR)
描述
-
.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:
- Create application with ListView.
- Create ListViewGroup
- Add ListViewItem to ListViewGroup
- Add ListViewGroup to ListView.
- 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:
ListViewItemis displayed in ListView, if added to a group which is then added to a listview.ListViewItemhas a reference to the listview, when a group is added to the listviewListViewItemhas 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);