WPF содержимое ячейки DataGridTemplateColumn - PullRequest
0 голосов
/ 27 июля 2011

В 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 Ответ

0 голосов
/ 27 июля 2011

Вы должны иметь возможность указать TextBlock внутри DataTemplate имени, а затем использовать свойство Text для получения данных.

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

var text = txtData.Text as string;
...