Window Programming/Silverlight

[DataGrid] DataGridTemplateColumn

rajent 2009. 12. 18. 17:45
728x90
DataGridTemplateColumn 은 사용자 입맛에 맞게 해당 행의 속성 및 모양을 변경할 수 있다.

<data:DataGridTemplateColumn Header="Status" Width="Auto" CanUserSort="True" SortMemberPath="Status">
<data:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid DataContext="{Binding Status}">
                                        <Rectangle DataContext="{Binding}" Loaded="StatusCellRectangle_Loaded"/>
                                        <TextBlock Text="{Binding}" Loaded ="StatusCellText_Loaded" />
                                    </Grid>       
</DataTemplate>
</data:DataGridTemplateColumn.CellTemplate>
</data:DataGridTemplateColumn> 

이런식으로 사용가능하다.

DataGridTemplateColumn은 자제 소팅이 안되는데 설정만 해주면 가능하다.

CanUserSort="True"  <- 소팅기능 활성화
SortMemberPath="Status" <- 해당 열에 바인딩되는 값을 지정.

이렇게 셋팅하면 얼마든지 변경가능하다.

<Grid DataContext="{Binding Status}">
<Rectangle DataContext="{Binding}" Loaded="StatusCellRectangle_Loaded"/>
<TextBlock Text="{Binding}" Loaded ="StatusCellText_Loaded" />
</Grid>

위의 코드에서 Cell을 Load할때 바인딩된 값으로 배경 및 Font색상을 지정하는데 DataPager를 옮겨도 그대로인 현상이 발생한다.
그래서 해당 코드를 Reload하는 로직을 추가해야 할 필요가 있다.

[참고Uri]