2011-08-12 1 views
3

누군가가 Windows Forms/.net ListView 문제 (이 경우 C# 사용)를 도울 수 있는지 궁금합니다.Winforms ListView에서 "Default"(그룹 없음) 헤더의 지역/이름을 바꾸는 방법은 무엇입니까?

ListViewItem을 ListView에 추가하고 있습니다. 일부는 의도적으로 어떤 그룹에도 속하지 않습니다. 런타임에는 이러한 코드가 "Default"라는 그룹에 표시됩니다.이 그룹은 코드에서 생성되지 않습니다.

(목록보기에 그룹이 아닌 항목 만있는 경우에는이 "기본"헤더가 나타나지 않으며 항목이 포함 된 그룹을 추가하자마자 나타납니다).

어쨌든 (놀라운) 문제는 해당 그룹을 현지화하거나 이름을 바꿀 수있는 방법이 없다는 것입니다. 누구든지 (a) 이름을 바꿀 수있는 방법이나 (b) "Default"헤더를 표시하지 않는 방법을 알려 주시면 기뻐합니다. ?

(NB : 모든 항목이 그룹으로되어있어 모든 그룹 이름을 완벽하게 제어 할 수 있다는 것을 알고 있습니다. 그러나 컨트롤에 많은 로직이 내장되어 있으므로 리팩토링을 피하는 것이 좋습니다. 가능하다면, 마이크로 소프트의 부분에 대한 흥미로운 감독인지, 아니면 바꿀 수 있는지 그리고 나는 너무 멍청해서 어떻게 발견되는지 궁금하다. 감사 Karagee

답변

3

여기에 문서 그룹에 할당되지 않은

모든 항목 머리글 레이블이있는 기본 그룹에 나타납니다 말씀이다 "하여 defaultGroup을 {0}". 기본 그룹은 그룹 컬렉션에 포함되어 있지 않으며 변경할 수 없습니다.. 이는 모든 항목이 그룹에 제대로 추가되었는지 확인하기 위해 디버깅에 주로 유용합니다.

저는 그렇게 생각하지 않습니다.

2

기본 제목을 변경할 수 없습니다.

새 그룹 (속성 그룹)을 추가하고 모든 항목을이 그룹 (속성 항목/그룹)에 할당 할 수 있습니다.

0

리플렉션을 사용하여 기본 그룹의 헤더 텍스트의 이름을 바꿀 수 있습니다. ListView의 defaultGroup이라는 개인 ListViewGroup 필드가 있습니다. 리플렉션을 사용하여이 필드를 조작하고 원하는대로 무엇이든 할 수 있습니다.

2

ShowGroups 속성을 "false"로 설정하면 트릭을 수행해야합니다.

// 코드 줄 lstView.ShowGroups = false;

목록보기의 경우이 속성은 기본적으로 true로 설정되고 지정된 경우를 제외하고 모든 ListViewItem은이 기본 그룹으로 이동합니다. 이것을 false로 설정하면 목록보기에서 그룹을 제거합니다.

관련 문제