Невозможно установить родительский текст данных для всплывающей подсказки - PullRequest
0 голосов
/ 13 марта 2019

Невозможно установить родительский текст данных для всплывающей подсказки таблицы данных.

Ниже приведен код xaml. Только один раз в поле со списком и в поле со списком данных добавлено текстовое поле.

Xaml

<UserControl x:Class="WpfApplication1.UserControl1"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             mc:Ignorable="d" 
             Name="UC"
             d:DesignHeight="50" d:DesignWidth="200">
    <Grid>
        <ComboBox Width="200" Height="50" ItemsSource="{Binding Coll}">
            <ComboBox.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Length}">
                        <TextBlock.ToolTip>
                            <ToolTip Content="{Binding Path=DataContext.ToolTipValue, 
                                                       RelativeSource={RelativeSource FindAncestor, 
                                                       AncestorType={x:Type UserControl}}}"/>
                        </TextBlock.ToolTip>
                    </TextBlock>
                </DataTemplate>
            </ComboBox.ItemTemplate>
        </ComboBox>
    </Grid>
</UserControl>

ViewModel

    private List<string> _coll;

    public List<string> Coll
    {
        get { return _coll; }
        set { _coll = value; OnPropertyChanged(); }
    }

    private string _ToolTipValue;

    public string ToolTipValue
    {
        get { return _ToolTipValue; }
        set { _ToolTipValue = value; OnPropertyChanged(); }
    }

    public ViewModel()
    {
        _coll = new List<string>(){ "1", "2", "3"};
        _ToolTipValue = "Demo";
    }

Подскажите, пожалуйста, почему не задан DataContext.

Это обязательный вопрос?

1 Ответ

1 голос
/ 13 марта 2019

если вам не нужны какие-то особые вещи, постарайтесь не вкладывать всплывающую подсказку:

<TextBlock ToolTip="{Binding DataContext.ToolTipValue, 
                     RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}"
           Text="{Binding Length}"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...