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;
Другие вопросы по тегам