Элемент управления Silverlight Find в шаблоне данных - PullRequest
1 голос
/ 15 января 2012

У меня есть следующий код xaml:

<dxb:BarButtonItem Name="btnPrev" Cursor="Hand" ItemClick="btnPrev_ItemClick">
<dxb:BarButtonItem.ContentTemplate>
<DataTemplate>
<Image x:Name="imgSkipLeft" Source="/ProjectTool;component/images/arrowleft.png" Height="16" Width="16">
<ToolTipService.ToolTip>
<TextBlock x:Name="txtBlockTip_Left"/>
</ToolTipService.ToolTip>
</Image>
</DataTemplate>
</dxb:BarButtonItem.ContentTemplate>
</dxb:BarButtonItem>

Как мне найти txtBlockTip_Left и изменить текст

Ответы [ 2 ]

0 голосов
/ 22 мая 2013

Используя класс VisualTreeHelperExtensions, поместите сетку в шаблон данных и дайте ему имя, в приведенном ниже примере это имя grdTemplate.

var bttn= btnPrev.ItemContainerGenerator.ContainerFromItem(btnPrev);
var dataTemplate = bttn.GetDescendantsOfType<Grid>().FirstOrDefault(g => g.Name == ("grdTemplate"));
var textBlocks= VisualTreeHelperExtensions.GetDescendantsOfType<TextBlock>(dataTemplate);
TextBlock txtBlockTip_left = textBlocks.ElementAt(0);
0 голосов
/ 15 января 2012

Вместо того, чтобы пытаться найти TextBlock в DataTemplate для изменения текста, было бы лучше установить текст через привязку, а затем изменить свойство, с которым связано свойство Text. В следующем ресурсе приведен пример использования привязки данных в шаблоне данных: http://www.silverlight.net/learn/data-networking/binding/data-binding-to-controls-%28silverlight-quickstart%29

...