Не уверен, что здесь происходит, но привязка работает для метки в шаблоне данных, но не для всплывающей подсказки. Любая помощь будет оценена.
<DataTemplate DataType="Label">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
<StackPanel.ToolTip>
<ToolTip DataContext="{Binding Path=PlacementTarget,
RelativeSource={x:Static RelativeSource.Self}}">
<TextBlock Text="{Binding Path=DataContext.Description}" />
</ToolTip>
</StackPanel.ToolTip>
<Image Source="{StaticResource ApplicationInfoS}"
Margin="0 0 5 0" Stretch="None"
HorizontalAlignment="Left" />
<Label Style="{StaticResource lblTextContent}"
Padding="5 0 0 0"
Content="{Binding Path=DataContext.Description, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListViewItem}}}"/>
</StackPanel>
</DataTemplate>
Кстати, DataTemplate используется в Listview. Свойство «Описание» существует в модели представления, связанной с представлением списка.
Сообщение, которое я получаю в окне вывода в VS2010:
System.Windows.Data Ошибка: 39: Ошибка пути BindingExpression: свойство 'Description' не найдено в 'object' '' String '(HashCode = -466763399)'. BindingExpression: Path = DataContext.Description; DataItem = 'StackPanel' (Name = ''); целевым элементом является TextBlock (Name = ''); Целевым свойством является «Текст» (тип «Строка»)
UPDATE
Я сдался на данный момент. Использование следующего хака на данный момент:
Добавить тег в StackPanel и привязать к нему «Описание»
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left" Tag="{Binding Path=DataContext.Description, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListViewItem}}}">
Свяжите всплывающую подсказку с тегом. Да взломать, но это работает.
<StackPanel.ToolTip>
<ToolTip DataContext="{Binding Path=PlacementTarget, RelativeSource={x:Static RelativeSource.Self}}">
<TextBlock Text="{Binding Path=Tag}" />
</ToolTip>
</StackPanel.ToolTip>
Приветствия
Mike