WPF DataGrid Binding DatagridCell Содержание
-
29-09-2019 - |
Вопрос
Это, надеюсь, будет действительно простой ответ, я просто не вижу пресловутого дерева для деревьев, которые я думаю.
У меня есть стиль 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 - это свойство вашего объекта ряд, который имеет путь изображения.