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]