当单元格为 RichTextBox 时从 DataGrid 获取 RichTextBox

Get RichTextBox from DataGrid when cells are RichTextBox

我覆盖我的 DataGrid 以使用 RichTextBox 作为 DataGridTemplateColumn。 现在在后面的代码中,我想从网格中访问这些 RichTexBoxes。 例如我想获取第 10 行第 1 列的 RichTextBox。 我该怎么做?

<DataGridTemplateColumn Header="First Language" IsReadOnly="False" Width="*">
    <DataGridTemplateColumn.CellTemplate>
         <DataTemplate>
              RichTextBox>
                   <FlowDocument IsOptimalParagraphEnabled="True" IsHyphenationEnabled="True">
                     <Paragraph FontFamily="Segoe UI" FontSize="14 ">
                           <Run Text="{Binding Path=First ,Mode=TwoWay , UpdateSourceTrigger=PropertyChanged}" />
                      </Paragraph>
                   </FlowDocument>
              </RichTextBox>
          </DataTemplate>
     </DataGridTemplateColumn.CellTemplate>
 </DataGridTemplateColumn>

更新:

使用我在下面找到的代码,我能够获得 DataGridCell,但是将内容转换为 RichTextBox 会给我 null。有什么想法吗?

https://svgvijay.blogspot.de/2013/01/how-to-get-datagrid-cell-in-wpf.html

试试这个:

int row = 0;
int column = 0;
DataGridCell cell = Datagrid.GetCell(dataGrid, row, column);
ContentPresenter cp = cell.Content as ContentPresenter;
if (VisualTreeHelper.GetChildrenCount(cp) > 0)
{
    RichTextBox rtb = VisualTreeHelper.GetChild(cp, 0) as RichTextBox;
}