Не уверен, что здесь делает, но привязка работает для метки в шаблоне данных, но не в подсказке. Любая помощь будет оценена.WPF привязка к подсказке
<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>
BTW DataTemplate используется в Listview. Свойство «Описание» существует в модели представления, связанной с представлением списка.
сообщение я получаю в окне вывода в VS2010 является:
System.Windows.Data Ошибка: Ошибка BindingExpression путь:: 39 Свойство «Описание» не найден «объект» «» Строка»(HashCode = -466763399). BindingExpression: Path = DataContext.Description; DataItem = 'StackPanel' (Name = ''); целевым элементом является «TextBlock» (Name = ''); цель свойство 'Text' (тип 'Строка')
UPDATE
Я отказался сейчас. Используя следующий хак до поры до времени:
Добавить тег к StackPanel и Bind «Описание» к нему
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left" Tag="{Binding Path=DataContext.Description, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListViewItem}}}">
Bind всплывающей подсказки к Tag. Да, взлом, но он работает.
<StackPanel.ToolTip>
<ToolTip DataContext="{Binding Path=PlacementTarget, RelativeSource={x:Static RelativeSource.Self}}">
<TextBlock Text="{Binding Path=Tag}" />
</ToolTip>
</StackPanel.ToolTip>
Приветствия
Майк
Описание происходит из ViewModel, связанного с этим представлением. – ozczecho
Является ли datatemplate основанной на Viewmodel? или какой-либо другой класс – TerrorAustralis