DataGridTemplateColumn的单元格的WPF内容

时间:2011-07-27 06:40:24

标签: wpf cell datagridtemplatecolumn

在WPF中,我有一个DataGridCell的引用,并希望得到它的内容。我曾经在DataGridTextColumn中拥有该单元格,并且可以获得如下内容:

var text = cell.Content as TextBlock;

但是由于单元格位于DataGridTemplateColumn中,所以不再有效,尽管我确实将TextBlock指定为该列的DataTemplate。还有办法解决这个问题吗?

编辑澄清问题。以下代码按预期工作:

<!-- XAML -->
<DataGridTextColumn Header="Autor" Width="*"  Binding="{Binding Author}" />

//C#
var block = _selectedCell.Content as TextBlock;
var text = block.Text; //text contains the string that is also displayed by the grid in that call

但是,如果我使用TemplateColumn,代码将无效,因为block将为null。

<DataGridTemplateColumn Header="Autor" Width="*">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <TextBlock Name="txtAutor" Text="{Binding Author}" />
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

有没有办法继续获取单元格内容(在我的情况下是一个字符串)?

1 个答案:

答案 0 :(得分:0)

您应该能够在TextBlock内为DataTemplate提供一个名称,然后使用Text属性来获取数据。

<DataTemplate>
    <TextBlock Name="txtData" Text="{Binding}" />
</DataTemplate>

var text = txtData.Text as string;