Я написал прикрепленное свойство, которое хранит среди прочего текст справки.
Этот текст справки отображается в правой части главного окна. Это отлично работает.
Теперь я хочу добавить всплывающую подсказку для каждого элемента управления. Содержимое всплывающей подсказки должно быть таким же, как и для расширения справочного текста.
Код XAML:
<ListView ctrl:ListViewLayoutManager.Enabled="true"
x:Name="ListViewSources"
ItemsSource="{Binding SourceItems}"
ItemContainerStyle="{DynamicResource ListViewItemStyleAlternate}"
Height="150"
MinWidth="350"
Helper:HelpExtension.IsControl="true"
Helper:HelpExtension.HelpText="{x:Static strings:GUIResource.HelpProfilesSourcesDescriptionText}" >
<ListView.ToolTip>
<ToolTip Style="{DynamicResource Own_TooltipStyle}"></ToolTip>
</ListView.ToolTip>
А теперь код стиля:
<Style x:Key="Own_TooltipStyle" TargetType="{x:Type ToolTip}">
<Setter Property="Background" Value="LightYellow"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToolTip}">
<Grid>
<TextBlock Text="{Binding Path=Helper:HelpExtension.HelpText, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ListView}}}" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Если я запускаю программу, я получаю ошибку привязки:
System.Windows.Data Ошибка: 39:
Ошибка пути BindingExpression:
Свойство 'Helper: HelpExtension' отсутствует
найдено в 'объекте' '' ListView '
(Name = 'ListViewSources')».
BindingExpression: Path = Helper: HelpExtension.HelpText;
DataItem = 'ListView'
(Name = 'ListViewSources'); цель
Элемент 'TextBlock' (Name = '');
целевое свойство 'Текст' (тип
'Строка')
Кто-нибудь знает, как я могу связать TextBlock с содержимым Helper: HelpExternsion.HelpText?