Pregunta

Esto es de esperar que va a ser una respuesta muy simple, yo no estoy viendo la madera proverbiales por los árboles, creo.

Tengo un estilo DataGridCell en el que quiero enlazar el contenido de la celda a la propiedad de origen de una imagen, aquí está el XAML que estoy usando en este momento:

<Style x:Key="DataGridImageCellStyle" TargetType="{x:Type toolkit:DataGridCell}">
    <Setter Property="Background" Value="Transparent" />
    <Setter Property="BorderBrush" Value="Transparent" />
    <Setter Property="BorderThickness" Value="1" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type toolkit:DataGridCell}">
                <Border Background="Transparent" 
              BorderBrush="{TemplateBinding BorderBrush}"  
              BorderThickness="0" 
              SnapsToDevicePixels="True">
                    <Image Source="{Binding RelativeSource={RelativeSource AncestorType=toolkit:DataGridCell}, Path=Content}" />
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

Tenga en cuenta que en este momento estoy unir la imagen de origen en contenido .. lo que no funciona, También he probado valor, que no funcionaba!

Así que mi pregunta es, bonito y simplemente .. ¿cuál es la correcta unión a utilizar para obtener el contenido de la celda en la propiedad de origen de imagen?

Gracias de antemano!

Pete

¿Fue útil?

Solución

Si la columna es una DataGridTextColumn entonces usted podría ser capaz de unirse a la propiedad Text del TextBlock que es su contenido:

<Image Source="{Binding RelativeSource=
     {RelativeSource AncestorType=DataGridCell}, Path=Content.Text}" />

Esto es realmente un truco, sin embargo. Si desea mostrar una imagen en una columna, probablemente deba utilizar un DataGridTemplateColumn :

<DataGridTemplateColumn Header="...">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <Image Source="{Binding SomeProperty}"/>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

Cuando SomeProperty es la propiedad del objeto fila que tiene la ruta de la imagen.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top