WPF содержимое ячейки 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, код не будет работать, потому что блок будет нулевым.
<DataGridTemplateColumn Header="Autor" Width="*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Name="txtAutor" Text="{Binding Author}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Есть ли способ получить содержимое ячеек (в моем случае это строка)?
1 ответ
Вы должны быть в состоянии дать TextBlock
внутри DataTemplate
имя, а затем используйте Text
свойство для получения данных.
<DataTemplate>
<TextBlock Name="txtData" Text="{Binding}" />
</DataTemplate>
var text = txtData.Text as string;