TemplateBinding“Foreground”不起作用

时间:2009-08-19 15:14:14

标签: templatebinding

我有一个列表框,其项目模板是一个列表框。我试图将内部列表框的“前景”属性设置为与主列表框的属性相同。这是失败的。以下是代码段。在这里Foreground =“{TemplateBinding Foreground}”没有效果。

<ListBox x:Name="GroupListBox" Grid.Column="1" Grid.Row="1" Style="{StaticResource ListBoxStyle1}" Visibility="Collapsed"
             BorderBrush="Transparent" Background="Transparent" Foreground="{Binding WebForeground}">
        <ListBox.ItemTemplate>
            <DataTemplate x:Name="test">
                <StackPanel Orientation="Horizontal" >
                    <!--<TextBlock Text="{Binding Rank}" FontFamily="Arial" FontSize="13" TextDecorations="Underline" TextWrapping="Wrap" Width="115" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="0,15,0,0"/>-->
                    <ListBox x:Name="SubGroupListBox" ItemsSource="{Binding InnerList }" ItemTemplate="{StaticResource ItemTemplateKey1}" 
                             ItemsPanel="{StaticResource ItemsPanelKey}" Style="{StaticResource ListBoxStyle1}" 
                             BorderBrush="Transparent" Background="Transparent" Foreground="{TemplateBinding Foreground}">                            
                    </ListBox>
             </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

1 个答案:

答案 0 :(得分:2)

此示例适用于我 - 它可能适用于您尝试执行的操作:

    <ListBox x:Name="GroupListBox" Foreground="Purple">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal" >
                <ListBox Foreground="{Binding Foreground, RelativeSource={RelativeSource Self}}">
                    <TextBox Text="{Binding Mode=OneWay}" FontSize="35" Foreground="{Binding Foreground, RelativeSource={RelativeSource Self}}"  />
                </ListBox>
         </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>

    <ListBox.ItemsSource>
        <x:Array Type="{x:Type sys:String}">
            <sys:String>Sample Data</sys:String>
            </x:Array>
    </ListBox.ItemsSource>

</ListBox>