Festlegen des Stils basierend auf der Existenz eines Vorgängertyps

Ich habe 2 Sätze von Textblöcken, von denen sich einige in einer Elementsteuerung befinden und einige nicht. Ich möchte einen Stil (nur basierend auf dem Typ) erstellen, der den Hintergrund des Textblocks festlegt, wenn sein Vorfahr ein Elementsteuerelement ist.
Ich kann es mit dem folgenden Code tun, aber das Problem ist, dass im Protokoll (und im Ausgabefenster) eine Fehlermeldung über das Datenbiding angezeigt wird, da es sich um Textblöcke handelt, die Itemcontrol nicht als Vorgänger haben. Gibt es eine bessere Möglichkeit, diese Aufgabe auszuführen und diese Fehlermeldung zu vermeiden?

<Grid>
    <Grid.Resources>
        <local:HasAncestorConverter x:Key="HasAncestorConverter" />
        <Style TargetType="TextBlock">

            <Style.Triggers>
                <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}, Converter={StaticResource HasAncestorConverter}}" Value="True">
                    <Setter Property="Background"
                            Value="{Binding Tag,
                            RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}" />

                </DataTrigger>
            </Style.Triggers>

        </Style>
    </Grid.Resources>
    <StackPanel>
        <TextBlock Text="Out of ItemControl" />
        <ItemsControl Tag="Blue" >
            <TextBlock Text="Inside of ItemControl" />
        </ItemsControl>
    </StackPanel>

</Grid>    

Konverter:

class HasAncestorConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        return value != null;
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

Fehlermeldung:

System.Windows.Data Fehler: 4: Die Quelle für die Bindung mit dem Verweis 'RelativeSource FindAncestor, AncestorType =' System.Windows.Controls.ItemsControl ', AncestorLevel =' 1 '' kann nicht gefunden werden. BindingExpression: Path =; DataItem = null; Zielelement ist 'TextBlock' (Name = ''); Zieleigenschaft ist 'NoTarget' (Typ 'Object')

Antworten auf die Frage(4)

Ihre Antwort auf die Frage