2017-10-12 9 views
0

RichTextBoxをDataGridTemplateColumnとして使用するようにDataGridをオーバーライドします。 コードビハインドで、グリッドからこれらのRichTexBoxにアクセスしたいと思っています。 たとえば、10行目のRichTextBoxを取得したいとします。 どうすればいいですか?セルがRichTextBoxの場合、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> 

UPDATE:

私はDataGridCellを得ることができたの下に見つけることが、リッチテキストボックスがnull私を与えるなどのコンテンツをキャストコード付き。何か案は?

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

答えて

1

これを試してみてください:

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; 
} 
関連する問題