【发布时间】:2011-07-27 06:40:23
【问题描述】:
在 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>
有没有办法仍然获取单元格内容(在我的情况下是一个字符串)?
【问题讨论】:
-
我在 stackoverflow 上的另一个 [问题][1] 中找到了一个可用的解决方案。 [1]:stackoverflow.com/questions/7029324/…
-
在这种情况下过于复杂了。你可以在
(_selectedCell.DataContext as *cast to parent of Author*).Author找到你的字符串。
标签: wpf cell datagridtemplatecolumn