在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>
有没有办法继续获取单元格内容(在我的情况下是一个字符串)?
答案 0 :(得分:0)
您应该能够在TextBlock
内为DataTemplate
提供一个名称,然后使用Text
属性来获取数据。
<DataTemplate>
<TextBlock Name="txtData" Text="{Binding}" />
</DataTemplate>
var text = txtData.Text as string;