WPF Pokaż dane z wielu DataContexts w ToolTip z ItemsControl

Próbuję wyświetlić podpowiedź dla elementu wygenerowanego przezItemsControl który musi pobierać dane ze źródeł niepowiązanych koncepcyjnie. Na przykład powiedz, że mam klasę przedmiotów w następujący sposób:

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

Mogę wyświetlić element w ramach ItemsControl za pomocą podpowiedzi w następujący sposób:

<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>

Ale powiedz, że mam inną nieruchomość, do której można uzyskać dostęp przezDataContext zItemsControl. Czy jest jakiś sposób, aby to zrobić z podpowiedzi? Na przykład.,

<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>

Kod używanego okna testowego jest następujący:

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; }
}

W tym przykładzie chcę pokazać wartośćGlobalText własność (w rzeczywistości byłby to inny obiekt niestandardowy).

Aby skomplikować sprawy, używam DataTemplates i pokazuję dwa różne typy obiektów w ItemControl, ale każda pomoc byłaby bardzo mile widziana!

questionAnswers(5)

yourAnswerToTheQuestion