0

在 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 将为空。

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

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

4

1 回答 1

0

你应该可以给你的TextBlock里面起DataTemplate一个名字,然后使用Text属性来获取数据。

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

var text = txtData.Text as string;
于 2011-07-27T15:25:11.853 回答