2010.04.26 07:57

http://gallery.expression.microsoft.com/en-us/ToggleRowDetail 

얼마나 유용할지는 모르겠지만 우선 나중에 혹시 필요할까봐 미리 정리해 둡니다.
데이터 그리드에서 확장 버튼을 누르면 해당 Row의 아래행에 상세 정보가 펼치지는 방식의 구현 내용이 정리 되어 있습니다.

개발자를 위한 IT블로그 영욱닷컴(http://www.YoungWook.com)
저작자 표시 변경 금지
신고
2010.01.18 09:00

71.RichTextArea Part 1
2.RichTextArea Part 2
3.Accessing Web Camera and Microphone
4.Right Click Mouse Events
5.MouseWheel API
6.Using Silverlight Controls As Drop Targets
7.DataGrid Enhancements
8.Printing API Basics 
9.Hosting HTML Content
10.Accessing the Global Clipboard Programmatically 
11.Using the ViewBox Control 
12.Asynchronous Data Validation 
13.BiDi and Right-to-Left Support 
14.Notification API
15.Local File Access 
16.RIA Services support in Visual Studio 2010  

블로그 이미지 김영욱 차장 Microsoft Korea  .NET Evangelist
Enterprise UX 를 위한  UI 기술과 SOA, Cloud Computing, NUI등 다양한 분야의 접목과 응용을 통해 최적의 IT 인프라 구축을 위해서 노력하고 있다.
Email: iwinkey@hotmail.com
Blog: http://winkey.tistory.com

 

국내에서 뿐만 아니라 전 세계적으로 많은 데이터를 보여주기 위해서 가장 많이 사용되는 방법은 바로 DataGrid 일 것입니다. Silverlight에서는 기본적으로 DataGrid를 제공하고 있으며 또 상용 컴퍼넌트도 종류가 아주 많이 있습니다.

Silverlight 4에서는 기본 DataGrid도 개선 사항이 있다고 합니다.

 

<그림1> Sample Program

 

Silverlight 4에서는 DataGrid가 좀 더 Windows용 응용 프로그램에 가까워 졌습니다. 앞서서 설명했던 마우스 오른쪽 버튼의 사용이나 마우스 휠 버튼의 사용등과 마찬가지로 DataGrid 역시 기존에는 그냥 데이터를 뿌려주는 것에 불과 했던 것에서 Windows 용 응용 프로그램에서 사용했던 경험을 그대로 활용할 수 있는 방향으로 바뀌었습니다.

 

image

<그림2>DataGrid 컬럼의 설정

 

<그림2>에서 보는 바와 같이 컬럼의 폭을 설정 할 수 있는 방법이 많아 졌습니다. 자동으로 설정되는 Auto, 고정된 폭을 가지고 있는 Pixel, 그리고 나머지 공간을 균등하게 가져가는 Star 마지막으로 Cell이나 Header를 기준으로 설정하는 SizeToCells, SizeTOHeader 등이 있습니다.

 

  1. <data:DataGrid AutoGenerateColumns="False">
  2. <data:DataGrid.Columns>
  3. <data:DataGridTextColumn Header="One" Width="Auto" />
  4. <data:DataGridTextColumn Header="Two" Width="*" />
  5. <data:DataGridTextColumn Header="Three" Width="3*" />
  6. </data:DataGrid.Columns>
  7. </data:DataGrid>

<소스1>DataGrid의 활용 예

<소스1>에서 보면 3~5번 줄에서와 같이 세 개의 컬럼이 추가 되어 있는데 Auto, Star, 등을 지정하고 있습니다.

 

image

<그림3>가변 컬럼의 변화

 

<그림3>의 결과를 보면 25%, 75%사이즈를 가지고 있는 것을 볼 수 있습니다. 또 하나 재미있는 점은 클립보드를 사용할 수 있게 된 점이라고 할 수 있습니다. 클립보드를 사용할 수 있게 되어서

image image image

<그림4>클립보드의 활용

 

<그림4>처럼 DataGrid의 내용을 엑셀에 붙여넣는 것과 같은 작업이 가능하게 되었습니다.

마지막으로 FlowDirectionText 속성을 사용해서 글자의 흐름을 제어할 수 있는 이 기능을 통해서 아랍어와 같은 RTL(Right To Left)기반의 언어들을 지원할 수 있습니다.

새로 추가된 DataGrid의 기능을 테스트 해볼 수 있는 Sample을 첨부합니다.


Sample 소스에서 Customer.cs 파일은 데이터를 바인딩 하기 위해서 추가한 Entity Class의 역할을 합니다.  그리고  DataGridLenthUnitType.cs 는 DataGrid의 Length 옵션을 표현한 Class 입니다.

신고


티스토리 툴바