首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF DataGrid绑定DataGridCell内容

WPF DataGrid绑定DataGridCell内容
EN

Stack Overflow用户
提问于 2010-08-17 20:06:29
回答 1查看 8.6K关注 0票数 4

希望这将是一个非常简单的答案,我只是没有看到俗话所说的树木换来的树木。

我有一个DataGridCell样式,希望将单元格的内容绑定到图像的源属性,下面是我目前正在使用的XAML:

代码语言:javascript
复制
<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>

请注意,目前我正在将Image Source绑定到Content..这不起作用,我也尝试了Value,但没有起作用!

所以我的问题是,很好,很简单..要将单元格的内容放入此图像的source属性,正确的绑定是什么?

提前感谢!

皮特

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-08-17 20:41:34

如果该列是一个文本,那么您可以绑定到TextBlock的DataGridTextColumn属性,即它的内容:

代码语言:javascript
复制
<Image Source="{Binding RelativeSource=
     {RelativeSource AncestorType=DataGridCell}, Path=Content.Text}" />

不过,这真的是一种黑客手段。如果要在列中显示图像,则可能应该使用DataGridTemplateColumn

代码语言:javascript
复制
<DataGridTemplateColumn Header="...">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <Image Source="{Binding SomeProperty}"/>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

其中SomeProperty是具有图像路径的行对象的属性。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3502173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档