SILVERLIGHT如何在DataGridTemplateColumn中显示列标题数据网格内的图像

时间:2012-07-13 09:56:59

标签: silverlight

我试图在datagrid的列中显示图像,但我不知道该怎么做。 有人可以帮帮我吗?

这是我的datagrid的.xaml。

提前致谢。

       <sdk:DataGrid  IsReadOnly="True" Height="150" Grid.ColumnSpan="7" 
                           x:Name="dgElementosAfectados" 
                           ItemsSource="{Binding ElementosAfectados, Mode=TwoWay}" 
                           Grid.Row="0" AutoGenerateColumns="False" 
                           SelectionMode="Single" ColumnWidth="Auto" SelectionChanged="dgElementosAfectados_SelectionChanged">                            

                <sdk:DataGrid.Columns>



                    <sdk:DataGridTemplateColumn>

                        <sdk:DataGridTemplateColumn.Header>

                            <DataTemplate>                                
                                <Image Source="/MonitorizacionIncidencias;component/CustomResources/body_bg.png"  />
                            </DataTemplate>
                        </sdk:DataGridTemplateColumn.Header>


                            <!--<DataTemplate>
                                <Image Source="/MonitorizacionIncidencias;component/CustomResources/body_bg.png" Stretch="None" />
                            </DataTemplate>-->                                                                                                                    

                        <sdk:DataGridTemplateColumn.CellEditingTemplate >
                            <DataTemplate>
                                <Image Source="{Binding Estado.ID, Converter={StaticResource statusConv}}" Width="17" Height="17"></Image>
                            </DataTemplate>
                        </sdk:DataGridTemplateColumn.CellEditingTemplate>
                    </sdk:DataGridTemplateColumn>

1 个答案:

答案 0 :(得分:1)

将图像添加到Silverlight DataGrid列标题的最简单方法可能是使用标题样式设置ContentTemplate

<sdk:DataGridTemplateColumn.HeaderStyle>
    <Style TargetType="dataprimitives:DataGridColumnHeader">
        <Setter Property="ContentTemplate">
            <Setter.Value>
                <DataTemplate>
                    <Image Source="/MonitorizacionIncidencias;component/CustomResources/body_bg.png" Stretch="None" />
                </DataTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</sdk:DataGridTemplateColumn.HeaderStyle>

您需要为上述内容添加以下命名空间声明:

xmlns:dataprimitives="clr-namespace:System.Windows.Controls.Primitives;assembly=System.Windows.Controls.Data"

参见Adam Kinney和Lars Holm Jensen对this question的回答。