2009. 10. 19. 08:52ㆍWEB/Silverlight
평범한 리스트 형식을 그룹으로 묶어 사용자에게 새로운 경험을 제시해봄
- 자료의 양이 많고 필요한 정보를 찾기 위해 많은 옵션을 선택 하는건 비효율적 이라 생각 -> 중요한 핵심 그룹으로 정보를 색인해주면
사용자에게 새로운 경험을 제시할 수 있을 것이라 생각함
- 실버라이트로 시스템 개발을 진행함에 있어 리스트 정보의 변화를 생각해봄
1. 리스트로 표현할 데이터(List, ObservableCollection)를 PagedCollectionView로 변환
using System.Windows.Data; <-참조 dgTICompanyList.ItemsSource = tiCompaniesDataAccessExtendList;
▼ 변환
PagedCollectionView pagedCollectionView = new PagedCollectionView(tiCompaniesDataAccessExtendList);
2. 그룹화할 Property 를 추가(요구사항에 맞게 조절)
3. 리스트의 아이템 소스를 지정
dgTICompanyList.ItemsSource = pagedCollectionView;
4. 1차 결과
▼
▼ 보기 좋지 않다는 생각이 듦 (스타일을 적용해봄)
5. 스타일 적용 -> 그룹헤더의 수만큼 추가해주면 순서대로 스타일이 적용됨
<data:DataGrid.RowGroupHeaderStyles> <!—첫번째 그룹 헤더 스타일 --> <Style TargetType="data:DataGridRowGroupHeader"> <Setter Property="PropertyNameVisibility" Value="Collapsed" /> <Setter Property="Background" Value="#FF112255" /> <Setter Property="Foreground" Value="#FFEEEEEE" /> <Setter Property="SublevelIndent" Value="15" /> </Style> <!—두번째 그룹 헤더 스타일 --> <Style TargetType="data:DataGridRowGroupHeader"> <Setter Property="PropertyNameVisibility" Value="Collapsed" /> <Setter Property="Background" Value="#FFDBE5F1" /> </Style> </data:DataGrid.RowGroupHeaderStyles>
6. 최종 결과
| |
7. 이슈 사항
A. PagedCollectionView 자체에서 Linq 구문등과 같은 조건등을 줄 수 없음. 원본이 되는 데이터내에서 적절한 작업을 사용한 후 PagedCollectionView로 변환해야 함
B. 적절치 못한 사용은 자칫 사용자에게 혼란(복잡함, 난잡함 등)을 줄 수 있으며, 거부감을 주기 쉬움
C. 리스트를 변환하는 작업은 시스템에 부하를 발생-> 이것뿐만 아니라 서비스로 통신되는 데이터(특히 리스트 타입이나 대량의 자료 등) 변환 및 사용에 있어 서버상의 부하로 부담할지 아니면 사용자의 부하로 부담할지에 대한 논의가 필요 |
'WEB > Silverlight' 카테고리의 다른 글
[Silverlight] Textbox 돋보기 기능 Behavior (0) | 2009.11.06 |
---|---|
[Silverlight] Font Family 변경하기 (0) | 2009.11.06 |
[Silverlght] XML파일 읽기 (0) | 2009.10.25 |
[Silverlight] Browser가 Silverlight를 읽고 실행하는 순서 (0) | 2009.10.24 |
[Silverlight] Silverlight 시작 시 실행 순서 (0) | 2009.10.18 |