WPF Muestra datos de múltiples DataContexts en ToolTip de ItemsControl

Estoy tratando de mostrar una información sobre herramientas para un elemento generado por unItemsControl que necesita extraer datos de fuentes conceptualmente no relacionadas. Por ejemplo, digamos que tengo una clase de artículo de la siguiente manera:

public class Item
{
    public string ItemDescription { get; set; }
    public string ItemName { get; set; }
}

Puedo mostrar el artículo dentro de un ItemsControl con una información sobre herramientas de la siguiente manera:

<ItemsControl x:Name="itemsControl" ItemsSource="{Binding Items}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding ItemName}">
                <TextBlock.ToolTip>
                    <ToolTip>
                        <TextBlock Text="{Binding ItemDescription}" />
                    </ToolTip>
                </TextBlock.ToolTip>
            </TextBlock>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

Pero digamos que tengo otra propiedad a la que se puede acceder a través de laDataContext delItemsControl. ¿Hay alguna manera de hacer esto desde dentro de la información sobre herramientas? P.ej.,

<ItemsControl x:Name="itemsControl" ItemsSource="{Binding Items}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding ItemName}">
                <TextBlock.ToolTip>
                    <ToolTip>
                        <Grid>
                            <Grid.RowDefinitions>
                                <RowDefinition />
                                <RowDefinition />
                            </Grid.RowDefinitions>
                            <TextBlock Text="{Binding ItemDescription}" />
                            <TextBlock Grid.Row="1" Text="{Bind this to another property of the ItemsControl DataContext}" />
                        </Grid>
                    </ToolTip>
                </TextBlock.ToolTip>
            </TextBlock>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

El código para la ventana de prueba que utilicé es el siguiente:

public partial class Window1 : Window
{
    public Window1()
    {
        InitializeComponent();

        List<Item> itemList = new List<Item>() {
            new Item() { ItemName = "First Item", ItemDescription = "This is the first item." },
            new Item() { ItemName = "Second Item", ItemDescription = "This is the second item." } 
        };

        this.Items = itemList;
        this.GlobalText = "Something else for the tooltip.";
        this.DataContext = this;
    }

    public string GlobalText { get; private set; }

    public List<Item> Items { get; private set; }
}

Así que en este ejemplo quiero mostrar el valor de laGlobalText propiedad (en realidad este sería otro objeto personalizado).

Para complicar las cosas, en realidad estoy usando DataTemplates y muestro dos tipos diferentes de objetos dentro de ItemsControl, ¡pero cualquier ayuda sería muy apreciada!

Respuestas a la pregunta(5)

Su respuesta a la pregunta