Silverlight 从代码隐藏访问ListBoxItem控件

Silverlight 从代码隐藏访问ListBoxItem控件,silverlight,listbox,Silverlight,Listbox,在我的Silverlight 4应用程序中,我有一个列表框,我为它创建了一个itemtemplate: <DataTemplate x:Key="ItemTemplate"> <Grid Background="{StaticResource BrushCharacteristicListBoxItemBackground}"> <Grid.ColumnDefinitions> &

在我的Silverlight 4应用程序中,我有一个列表框,我为它创建了一个itemtemplate:

    <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>     
这给了我一个ListBoxItems的列表,但是似乎没有办法从那里获得控件。你能帮我解决这个问题吗

提前感谢,

Frank

从这个博客中获取小的
VisualTreeEnumeration
代码块:

现在,您可以使用以下代码找到“TextBlockCharacteristicName”元素:-

foreach (var textBlock in ListBoxCharacteristics.Descendents()
    .OfType<TextBlock>()
    .Where(t => t.Name == "TextBlockCharacteristicName") )
{
    // Do stuff with each Text block.
}
foreach(ListBoxCharacteristics.downents()中的var textBlock)
第()类
.Where(t=>t.Name==“TextBlockCharacteristicName”))
{
//对每个文本块进行填充。
}

是否确定无法将单个项目的高度绑定到(附着的)属性?应该是可能的。我需要调整单个项目的宽度,问题是,此宽度取决于其他列表项目:DesiredWidth=Min(Max(AllSimilarItems),MaxWidth)。我不认为这将是有约束力的可能。
foreach (var textBlock in ListBoxCharacteristics.Descendents()
    .OfType<TextBlock>()
    .Where(t => t.Name == "TextBlockCharacteristicName") )
{
    // Do stuff with each Text block.
}