在数据网格行中查找richtextbox

时间:2011-06-16 12:38:04

标签: wpf xaml datagrid richtextbox

在我的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的搜索?

提前致谢!

1 个答案:

答案 0 :(得分:0)

我刚刚找到this neat solution