통합검색
· 마을서비스란?  · 포럼마을  · 일반마을  · 테마마을  · 마을랭킹  · 활동왕
· 덱스퍼트란?  · TECBOX   · PRSBOX   · 이용안내  
· DEXT제품군  · 솔루션베이  · S/W & ESD 컴포넌트
· 프로그램베이
· LiveSeminar  · LiveConference
WPF & Silverlight 포럼마을입니다.
  마을등급 WPF & Silverlight   이 마을은 포럼마을 입니다이 마을은 자유가입제 마을 입니다 마을소개 페이지로 이동 전입신청
마을촌장촌장 서학수 주민 728 since 2008-07-17
우리마을 공지사항
질문&답변
강좌&팁
자유게시판
자료실
앨범
[마을 게시판]
WPF 강좌
랑데브 게시판
칼럼 게시판
개발자 고충상담
Dev Talk
자유토론방
벼룩시장
재나미 우스개
구인/프로젝트 정보
사람인 채용 게시판
  고객지원 게시판
마이 데브피아
 나의 e-Money 내역
 활동왕 My Page
 스크랩한 게시글보기
 쪽지관리
 주소록관리

 강좌&팁
 SL5...Twitter Client 6 (HierarchyChild)  | Silverlight 2011-05-20 오후 3:36:02
 kaki104  kaki104님께 메시지 보내기kaki104님을 내 주소록에 추가합니다.kaki104님의 개인게시판 가기 번호: 149 추천:0  / 읽음:5,496

Silverlight5...Twitter Client 6 (HierarchyChild)

 

1. RadGridView의 여러가지 기능들을 하나씩 만들어 보도록 하겠다.

   

 

오늘 작업 완료 후 보이는 화면으로, 간단히 설명하면

 

왼쪽 + 모양은 클릭하면 -로 변하면서 로우사이거 쫘악 벌어지고 그 사이에 또 다른 데이터를 보여줄 수 있다.

그런걸 HierarchyChild라고 하는데 아래 사진을 보면 쉽게 이해가 갈것이다.

 

중간에 사용한 템플릿은 전에 리스트박스에서 사용되었던 템플릿을 그대로 재사용했다. 머 새로 만들어도 가능하나..

템플릿의 재사용방법에 대한 예제라고 생각하면 되겠다.

 

그리고 맨 아래 '트윗수 : 79'라고 나오는 것은 AggregateFunctions 이란 기능을 사용해서 만든것이다.

그리드뷰 상단에 '그룹하하려는 컬럼을 끌어다가 놓으세요'라는 곳에 컬럼 하나를 올려 놓으면 그룹화가 되는데 각 그룹에

대해 어떤 서브 토탈을 만들어 내기 위해서 사용한다.

 

내용을 보면 소스 컬럼을 상단에 드래그 드롭으로 올려 놓으면 소스 필드의 데이터를 가지고 그룹화를 하는데,

그룹화된 헤더에 보면 트윗수 : x  개로 표시가 되는 것을 볼 수 있다.

 

 

2. HierarchyChild 만들기

 

작업은 대부분 Blend 5에서 작업을 했지만, 그것으로 작업하는 것이 부담 스럽다면 그냥 VS2010에서 작업을 해도 문제는 없다.

 

2-1. 그리드뷰에 컬럼을 수동으로 지정한다.

 

   <telerik:RadGridView.Columns>
    <telerik:GridViewDataColumn DataMemberBinding="{Binding Created_At}"

                                                 DataFormatString="yyyy-MM-dd" Header="작성일시"/>
    <telerik:GridViewDataColumn DataMemberBinding="{Binding Text}" Header="내용" TextWrapping="Wrap"/>
    <telerik:GridViewDataColumn DataMemberBinding="{Binding Source}" Header="소스"/>
    <telerik:GridViewCheckBoxColumn DataMemberBinding="{Binding Truncated}" Header="Truncated"/>
    <telerik:GridViewCheckBoxColumn DataMemberBinding="{Binding Favorited}" Header="Favorited"/>
    <telerik:GridViewDataColumn DataMemberBinding="{Binding Retweet_Count}" Header="리트윗수"/>
   </telerik:RadGridView.Columns>

2-2. 그리드뷰의 자동컬럼생성을 false로 바꾸고 실행해서 결과를 확인한다.

  <telerik:RadGridView ItemsSource="{Binding TwitterSet}"

                                  AutoGenerateColumns="False"

                                  IsReadOnly="True" >

 

2-3. 그 다음은 하이러키차일드 템플릿을 지정해준다.

  <telerik:RadGridView ItemsSource="{Binding TwitterSet}"
                                  AutoGenerateColumns="False"
                                  HierarchyChildTemplate="{StaticResource TwitterItem}" 
                                  IsReadOnly="True" >

2-4. 그리드뷰에 차일드 테이블 정의를 GridViewTableDefinition로 지정한다.

   <telerik:RadGridView.ChildTableDefinitions>
    <telerik:GridViewTableDefinition/>
   </telerik:RadGridView.ChildTableDefinitions>

2-5. 여기까지하면 처음에 이야기를 했던 하이러키차일드가 표현이 된다. 매우 기초적인 방법을 사용했을 뿐이고

더 복잡한 데이터를 출력하기 위해서는 생각을 만이 해야한다.

 

 

3. AggregateFunctions 사용하기

 

그리드뷰에서 기본적으로 제공하는 함수를 사용하는 방법과 사용자 정의 함수를 사용하는 방법이 있다. 여기서는 기본 적인 함수 한가지에 대해서만 설명한다. 사용자 정의 함수에 대해서는 RadControl홈페이즈를 참조하면된다.

 

3-1. 그리드뷰에 ShowColumnFooters를 추가한다.

  <telerik:RadGridView ItemsSource="{Binding TwitterSet}"
                                  AutoGenerateColumns="False"
                                  HierarchyChildTemplate="{StaticResource TwitterItem}" 
                                  IsReadOnly="True"
                                  ShowColumnFooters="True" >

3-2. 맨처음 컬럼에 함수를 추가한다.

    <telerik:GridViewDataColumn DataMemberBinding="{Binding Created_At}"

                                                 DataFormatString="yyyy-MM-dd" Header="작성일시">
     <telerik:GridViewDataColumn.AggregateFunctions>
      <telerik:CountFunction Caption="트윗수 :" ResultFormatString="{}{0:#,##0}"/>
     </telerik:GridViewDataColumn.AggregateFunctions>

    </telerik:GridViewDataColumn>

3-3. 실행해서 결과를 확인한다.

 

4. 실행데모 링크

코멘트쓰기
  좋음   놀람   궁금   화남   슬픔   최고   침묵   시무룩   부끄럼   난감
* 코멘트는 500자 이내(띄어쓰기 포함)로 적어주세요.
목록 보기   지금 보고 계시는 글을 회원님의 my Mblog >> 스크랩에 넣어두고 다음에 바로 보실 수 있습니다.  
회사소개  |   개인정보취급방침  |  제휴문의  |   광고문의  |   E-Mail 무단수집거부  |   고객지원  |   이용안내  |   세금계산서
사업자등록번호 안내: 220-81-90008 / 통신판매업신고번호 제 2017-서울구로-0055호 / 대표: 홍영준, 서민호
08390, 서울시 구로구 디지털로32길 30, 1211호 / TEL. 02_6719_6200 / FAX. 02-6499-1910
Copyright ⓒ (주) 데브피아. All rights reserved.