найти richtextbox в строке таблицы данных - PullRequest
0 голосов
/ 16 июня 2011

В моей 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>

Что мне нужно сделать во время выполнения, это заполнить поле richtext для SelectedItem FlowDocument. Теперь я использую методы расширения, описанные здесь , чтобы найти ячейку, содержащую этот элемент управления. С этим я делаю следующее:

DataGridCell cell = this.dgTexts.GetCell( this.dgFreetexts.GetSelectedRow(), 0 );
object ob = cell.Template.FindName( "rtbDiff", cell );

Независимо от того, как, я никогда не найду ребенка с таким именем - FindName всегда возвращает NULL. У кого-нибудь есть идеи, как я могу улучшить свой поиск для RichTextBox?

Заранее спасибо!

1 Ответ

0 голосов
/ 17 июня 2011

Я только что нашел это аккуратное решение .

...