Domanda

Questa è si spera sarà una risposta molto semplice, non sto solo vedendo il legno proverbiale per gli alberi che penso.

Ho uno stile DataGridCell in cui voglio associare il contenuto della cella per la proprietà di origine di un'immagine, ecco la XAML che sto utilizzando in questo 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>

Si noti che in questo momento sto vincolante l'immagine di origine al contenuto .. che non funziona, ho anche provato valore, che non ha funzionato!

Quindi la mia domanda è, bello e semplice .. qual è il corretto legame da utilizzare per ottenere il contenuto della cella nella proprietà fonte di questa immagine?

Grazie in anticipo!

Pete

È stato utile?

Soluzione

Se la colonna è un DataGridTextColumn allora si potrebbe essere in grado di legarsi alla proprietà Text del TextBlock che è il suo contenuto:

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

Questo è davvero un hack, però. Se si desidera visualizzare l'immagine in una colonna, probabilmente si dovrebbe usare un DataGridTemplateColumn :

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

Dove SomeProperty è di proprietà del vostro oggetto riga che ha il percorso dell'immagine.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top