Frage

Dies wird hoffentlich eine wirklich einfache Antwort zu gehen, ich sehe einfach nicht das sprichwörtlich Holz für die Bäume, denke ich.

Ich habe ein Datagridcell-Stil bekam, in dem ich den Inhalt der Zelle an die Quelleigenschaft eines Bildes binden möchten, hier ist die XAML Ich bin zur Zeit mit:

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

Beachten Sie, dass ich im Moment bin Bindung der Image Source zum Inhalt .. das nicht funktioniert, habe ich auch Wert versucht, was nicht funktioniert hat!

Also meine Frage ist, schön und einfach .. was ist die richtige Bindung zu verwenden, der Inhalt der Zelle in die Quelleigenschaft dieses Bildes zu erhalten?

Vielen Dank im Voraus!

Pete

War es hilfreich?

Lösung

Wenn die Spalte ein Datagridtextcolumn dann könnten Sie auf die Text-Eigenschaft des Textblock zu binden Lage sein, das ist sein Inhalt:

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

Das ist wirklich ein Hack, though. Wenn Sie ein Bild in einer Spalte angezeigt werden sollen, sollten Sie vielleicht ein Datagridtemplatecolumn :

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

Wo SomeProperty Eigentum Ihres Zeilenobjekts ist, das den Bildpfad hat.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top