2010-05-21 2 views
1

구조체가 있습니다. 구조는 단지 일부 문자열입니다. 예 public struct ReportLine { public string Name; public string Address; public string Phone; ... // 약 10 개의 다른 문자열 } 이 부분을 변경할 수 없습니다. 내가하고 싶은 것은 WPF에서 간단한 그리드 또는 simlar로 표시하는 것입니다. 내 유일한 요구 사항은 다음과 같습니다 가) 행) 색상 C에서 실행시까지 모르는되어 큰 자료()WPF에서 그리드 또는 유사한 문자열 구조의 컬렉션 제시 - 예? 아이디어?

누군가에게 모범이 날 지점 수를 저장하기에 충분히 큰 열을 대체합니다) 열 머리글을 B 필요 나 시작해? GridView는 갈 길입니까? 아니면 DataGrid? 아니면 그리드일까요?
저는 C# 2008에서 Pro WPF라는 책을 가지고 있으며 컬렉션에 ListBox를 바인딩하는 것을 다룹니다. 그러나 컬렉션은 항상 하나의 필드 (예 : 40 개의 이름 모음)의 컬렉션 인 것으로 보입니다. 여기에는 구조체의 컬렉션 (사실 배열)이 있습니다. 데이터 바인딩을 어떻게 설정합니까?

알다시피, 나는 이것에 익숙하지 않고 아마 기사에 대한 참고에서 가장 유익 할 것입니다. 1 필드의 콜렉션을 다루는 기사를 찾았으나 배열 구조에 대한 바인딩을 다루는 예제는 없습니다. 또한 열정이 가시적 인 데이터뿐만 아니라 해당 열의 모든 데이터에 대해 충분히 커야한다고 요구하는 경우 제 조사 연구에서 c) 쉽게 수행 할 수 없음을 나타냅니다.

덕분에, 데이브

답변

1

위의 모두는 DataGridListView 수행 할 수 있습니다. 바람직하게는 DataTemplates와 함께 사용합니다. 나열된

그것의 아주 간단한 예를 들어 모든 요구 사항이 한 줄 achived 할 수 있습니다

항목 유형 Item[] (당신의 구조 인스턴스의 배열)의 속성을 인도 표준시
<DataGrid AutoGenerateColumns="True" 
      ItemsSource="{Binding Items}" 
      AlternatingRowBackground="Gray" /> 

.

문자열은 필드가 아닌 propeties로 노출되어야합니다. 구조가이 요구 사항을 충족시키지 못하면이를 위해 어댑터 클래스 나 구조를 도입해야합니다. 데이터 바인딩은 일반적으로 필드에 대해 작동하지 않습니다.

+0

감사합니다. 그 일은 훌륭했습니다. 나중에이 스레드를 따르는 사람들은 WPF Toolkit을 다운로드하여 DataGrid를 가져와야한다는 점에 유의하십시오. VS2008에 있습니다. VS2010의 경우는 아닙니다. – Dave

관련 문제