Я нахожусь в процессе создания простого пользовательского элемента управления; просто кнопка ImageButton.
Я уже успешно привязал изображение к кнопке и поэтому решил добавить всплывающую подсказку. Теперь у меня проблемы. Кажется, что я могу жестко закодировать текст для всплывающей подсказки в XAML для элемента управления, но когда он привязан, он возвращает пустую строку.
Вот XAML для моего контроля:
<Button x:Class="BCOCB.DACMS.Controls.ImageButton"
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"
d:DesignHeight="300" d:DesignWidth="300"
Name="this"
Style="{StaticResource DisabledButton}">
<Image Source="{Binding ElementName=this, Path=Source}" />
<Button.ToolTip>
<TextBlock Text="{Binding ElementName=this, Path=ToolTipText}" />
</Button.ToolTip>
</Button>
А вот информация о свойствах зависимости для текста всплывающей подсказки:
public static readonly DependencyProperty ToolTipTextProperty = DependencyProperty.Register("ToolTipText", typeof(string), typeof(ImageButton));
public string ToolTipText
{
get
{
return this.GetValue(ToolTipTextProperty) as string;
}
set
{
this.SetValue(ToolTipTextProperty, value);
}
}
И, наконец, объявление элемента управления в моем окне:
<controls:ImageButton x:Name="btnAdd" Source="/DACMS;component/Resources/plus.png" ToolTipText="Add New Item" Click="btnAdd_Click" />
Как я уже упоминал ранее, изображение отлично связывается, и я сделал это точно так же.
Есть идеи?
Спасибо,
Sonny
РЕДАКТИРОВАТЬ: у меня это работает сейчас. Я удалил ElementName из привязки и установил значение TextBlock DataContext = this
в коде на момент создания. Тем не менее, я хотел бы знать, как исправить это в XAML.