Question

Cela va, espérons-être une réponse très simple, je suis tout simplement pas voir le bois proverbiale pour les arbres, je pense.

J'ai un style DataGridCell dans lequel je veux lier le contenu de la cellule à la propriété source d'une image, voici le XAML J'utilise au moment:

<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>

Notez que pour l'instant je suis lier l'image Source au contenu .. qui ne fonctionne pas, je l'ai aussi essayé la valeur, qui ne fonctionne pas!

Alors, ma question est, agréable et tout simplement .. quelle est la liaison correcte à utiliser pour obtenir le contenu de la cellule dans la propriété source de cette image?

Merci à l'avance!

Pete

Était-ce utile?

La solution

Si la colonne est un DataGridTextColumn alors vous pourriez être en mesure de se lier à la propriété Text du TextBlock qui est son contenu:

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

C'est vraiment un hack, cependant. Si vous souhaitez afficher une image dans une colonne, vous devriez probablement utiliser un DataGridTemplateColumn :

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

Où SomeProperty est la propriété de votre objet de ligne qui a le chemin de l'image.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top