환경 : .NET Framework 3.5



 ListViewItem 의 Text 프로퍼티값을 입력하여 생성한 ListViewItem 객체를 ListView에 추가하였다. 그런데 ListView 에 보이는 아이템의 Text 가 입력한 값과 다르게 짤려서 출력이 되었다.


MSDN에 보니 ListViewItem 의 Text 프로퍼티값은 ListView에서 출력될 때 사용되는 값이 저장된다고 한다. 단 259자를 넘을 수 없고 넘는다면 예측할 수 없는 오류가 발생할 수 도 있다고 한다.

ListViewItem Text Property - MSDN


왜 그럴까?

확실한 정보인지는 모르겠지만 찾아본 정보에 의하면 MS 측에서 말하길,

일반적인 컨트롤과는 다르게 ListView 를 디자인 할 때는 파일과 같은 객체의 정보를 출력하기 위한 용도로 만들었다고 한다. 윈도우즈에서 파일 이름의 최대 길이는 MAX_PATH 값이다. MAX_PATH 의 값은 260이다.


OwnerDraw 프로퍼티값과 ListView의 DrawItem 이벤트를 이용하면 259자를 넘는 Text도 출력할 수 있다고 하는데 이건 손이 많이간다.

.NET ListView, max number of characters, or maximum column width? Possible to override/expand?- stackoverflow


MS 고객지원 페이지를 보니, ListViewItem 의 Text 프로퍼티값이 출력될 땐 259자만 출력 되지만 값은 원래값(259자가 넘는)을 가지고 있으므로 ListView 의 SelectedIndexChanged 이벤트 시 Text 값을 TextBox 와 같은 다른 컨트롤에 출력 하라고 한다.

ListView control can only display 259 characters per column - support.microsoft.com


아마도 WPF에서는 이런 고민이 없을텐데.. 더 좋은 방법이 없을까 싶다.


@



Posted by six605
,