Я пытаюсь связать свою пользовательскую подсказку с элементами TreeView
. Это XAML внутри TreeView
: как вы можете видеть, я связываю свой HierarchicalDataTemplate
с GroupWrapper
(простой класс, который предоставляет свойства Name и Children) и DataTemplate
с DocWrapper
(опять же, простой Класс, который имеет такие свойства, как Name, Icon, BsonContent).
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type tmistruct:GroupWrapper}" ItemsSource="{Binding Children}">
<TextBlock Text="{Binding Name}" />
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type tmistruct:DocWrapper}" >
<StackPanel Orientation="Horizontal">
<Image Source="{Binding Icon}"/>
<TextBlock Text="{Binding Name}" Tag="{Binding BsonContent}" VerticalAlignment="Center" Style="{StaticResource TreeViewTextboxItemStyle}"/>
<StackPanel.ToolTip>
<local:MyDocTooltip
NameField="{Binding Name}"/>
</StackPanel.ToolTip>
</StackPanel>
</DataTemplate>
</TreeView.Resources>
Все отлично работает! Дерево автоматически заполняется правильным текстом и значками для всех узлов, НО ... моя пользовательская подсказка не получает памятку. Подсказка показывает , но поле имени не заполнено. Обратите внимание, что если я заменим
<local:MyDocTooltip
NameField="{Binding Name}"/>
на:
<local:MyDocTooltip
NameField="TESTSTRING"/>
Тестовая строка правильно отображается во всплывающей подсказке.
Так выглядит моя пользовательская подсказка например:
namespace MyControls
{
/// <summary>
/// Interaction logic for MyDocTooltip.xaml
/// </summary>
public partial class MyDocTooltip : UserControl
{
public MyDocTooltip()
{
InitializeComponent();
DataContext = this;
}
public static readonly DependencyProperty NameFieldProperty = DependencyProperty.Register("NameField", typeof(string), typeof(MyDocTooltip));
public string NameField
{
get { return (string)GetValue(NameFieldProperty); }
set { SetValue(NameFieldProperty, value); }
}
}
}
Я думаю, что-то связано с тем, что контекст данных моей подсказки установлен в свой собственный ViewModel? Я пытался с относительными ссылками, но безуспешно. Любая помощь приветствуется! Приветствия.