Вопрос

Это, надеюсь, будет действительно простой ответ, я просто не вижу пресловутого дерева для деревьев, которые я думаю.

У меня есть стиль DatagridCell, в котором я хочу связать содержимое ячейки к свойству исходности изображения, вот Xaml, который я использую в данный момент:

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

Обратите внимание, что в данный момент я связываю источник изображения к контенту .. который не работает, я также пробовал ценность, которая не работала!

Итак, мой вопрос, приятно и просто .. Какое правильное обязательство использовать для получения контента клетки в исходное свойство этого изображения?

Заранее спасибо!

Пит

Это было полезно?

Решение

Если столбец является DataGridTextColumn, то вы сможете привязать к свойству текста TextBlock, который является его содержанием:

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

Это действительно взлом, хотя. Если вы хотите отобразить изображение в столбце, вы, вероятно, должны использовать DatagridtemplateColumn:

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

Там, где SomeProperty - это свойство вашего объекта ряд, который имеет путь изображения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top