在我的DataGrid中,每行包含一个RichTextBox。
编辑:以下是RTB放置在DataGrid中的方式
<DataGrid>
<DataGrid.Columns>
<DataGridTemplateColumn x:Name="columnText" x:Uid="columnText"
Header="Text"
Width="*"
IsReadOnly="True"
SortMemberPath="Text"
CellTemplate="{StaticResource mainFormGridCell_columnText}"/>
</DataGrid.Columns>
</DataGrid>
DataTemplate在ResourceDictionary中定义,看起来大致如下:
<DataTemplate x:Key="mainFormGridCell_columnText">
<RichTextBox x:Name="rtbDiff" x:Uid="rtbDiff"/>
</DataTemplate>
我在运行时需要做的是使用FlowDocument填充SelectedItem的richtextbox。我现在使用here描述的扩展方法来查找包含该控件的Cell。有了这个,我做了以下几点:
DataGridCell cell = this.dgTexts.GetCell( this.dgFreetexts.GetSelectedRow(), 0 );
object ob = cell.Template.FindName( "rtbDiff", cell );
无论如何,我从未找到任何具有该名称的Child - FindName始终返回NULL。 有没有人有任何想法如何改进我对RichTextBox的搜索?
提前致谢!