в моем приложении Silverlight 4 у меня есть список, для которого я создал шаблон элемента:
<DataTemplate x:Key="ItemTemplate">
<Grid Background="{StaticResource BrushCharacteristicListBoxItemBackground}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="10"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock x:Name="TextBlockCharacteristicName" Text="{Binding Name}" TextTrimming="WordEllipsis" ToolTipService.ToolTip="{Binding Name}" Margin="6,0,2,0" VerticalAlignment="Center" HorizontalAlignment="Left" />
<TextBlock x:Name="TextBlockSeperator" Text="=" Grid.Column="1" VerticalAlignment="Center" />
<Border Grid.Column="2" HorizontalAlignment="Right" Margin="2,2,6,2" Background="{Binding FunctionState, Converter={StaticResource ConvertCharacteristicFunctionState2Color}}">
<TextBlock x:Name="TextBlockCharacteristicValue" Text="{Binding CalculatedValue, Converter={StaticResource ConvertDouble2Display}}" Padding="2,0" Foreground="{StaticResource BrushCharacteristicListBoxItemBackground}" ToolTipService.ToolTip="{Binding ValueOrFunc}" MaxWidth="72"/>
</Border>
</Grid>
</DataTemplate>
Теперь я хочу получить доступ к элементам управления, определенным в шаблоне (то есть TextBlockCharacteristicName) из кода ниже. Мне нужно это, чтобы вручную адаптировать размер элементов управления, что нельзя сделать другим способом.
Я подключился к событию LayoutUpdated, но не нашел способа получить доступ к элементам управления.
Я попробовал это с
((StackPanel)ListBoxCharacteristics.GetItemsHost()).Children
, который дает мне список ListBoxItems, но, похоже, нет никакого способа получить оттуда элементы управления. В любом случае может помочь мне с этой проблемой?
Заранее спасибо,
Frank