2010-12-10 4 views
8

VS2005에서 C#을 사용하여 ListView가있는 Forms 응용 프로그램이 있습니다. 나는 목록보기에 항목을 추가 할 수 있습니다. 그러나 해당 항목을 그룹으로 정렬하려고하면 나타나지 않습니다. 나는 비어있을 때 그룹이 나타나지 않는다는 것을 알고 있지만이 그룹은 이 아니고이 아님을 확인했습니다. 또한 입니다. listView.ShowGroups = true로 설정하십시오. 그룹 중 하나에 항목을 추가했지만 두 번째 그룹에 항목을 추가하지 않으면 "기본"그룹이 표시됩니다 ... 추가하지 않은 그룹 만 나타납니다!C# ListView가 그룹과 함께 공백으로 표시됨

여기에 내가 사용하고 코드는 다음과 같습니다

this.listView.View = View.Details; 
this.listView.Columns.Add("Column1"); 
this.listView.Columns[0].Width = this.listView.Width - 20; 
this.listView.HeaderStyle = ColumnHeaderStyle.None; 
this.listView.Groups.Add(new ListViewGroup("A")); 
this.listView.Groups.Add(new ListViewGroup("D")); 


foreach(item i in Class.Items) 
{ 
    if (i.Type == Type.A) 
     this.listView.Groups[0].Items.Add(i.Name); 
    else 
     this.listView.Groups[1].Items.Add(i.Name); 
} 
this.listView.ShowGroups = true; 

사람이 내 그룹이 표시되지 않습니다 이유에 어떤 아이디어가 있습니까? 여기에 내가보고있는 무슨의 스크린 샷이다 : 당신은 목록보기로 그룹에 대한 항목이 아니라 추가 항목을 추가해서는 안

alt text

+3

+1 유머러스 한 스크린 샷. –

답변

11

, 그리고 각 항목에 대해 원하는 그룹의 Group 속성을 설정 . 그룹을 보여주는 동안 ShowGroups 값이 false로 설정 한 다음 ShowGroups 속성이 나중에 true로 설정되어있는 동안 항목이 목록보기에 추가하는 경우이 MSDN link

+0

그랬어. 허, 그것은 직감적으로 나에게 자연스럽게 그것을 느끼는 것처럼 느껴지지 않습니다. 그러나 분명히 당시에 MSFT에 이해가되었습니다. 감사! – JToland

+3

@JToland : 가능한 한 이유는 항목을 다시 만들지 않고 런타임에 한 그룹에서 다른 그룹으로 항목을 쉽게 이동할 수 있다고 가정합니다. 그러나 XP 이전의 Windows 버전에서는 그룹이 표시되지 않기 때문에 항목을 ListView 자체에서 소유해야 해당 환경에서 모두 표시 할 수 있습니다. –

+2

@Cody : 예, 아마도 맞을 것입니다. 어쨌든, 나는 JToland에 동의합니다. D – digEmAll

5

의 예를 볼 수 있습니다

은 목록 상자는 공백으로 표시됩니다

(그러나 내용이 ShowGroups이 거짓 인 경우).

ShowGroups은 목록을 작성할 때 참이어야합니다.

타이밍도 중요합니다. ShowGroups 속성이 false로 설정되기 전에 목록 상자를 렌더링해야합니다. 대화 상자에 표시된 이벤트에 설정했습니다.

.Net 4.0에서 작업하는 동안이 사실을 발견했습니다.

관련 문제