Je suis en train de créer un contrôle utilisateur simple; juste un ImageButton.WPF - Problème de liaison Texte d'info-bulle sur le contrôle utilisateur personnalisé
J'ai déjà lié avec succès l'image au bouton et j'ai donc décidé d'ajouter une info-bulle. Maintenant j'ai des problèmes. Il semble que je peux coder en dur le texte pour l'info-bulle dans le XAML pour le contrôle, mais quand il est lié il renvoie une chaîne vide.
Voici le XAML pour mon contrôle:
<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>
Et voici l'info propriété de dépendance pour le texte de l'info-bulle:
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);
}
}
Et, enfin, la déclaration du contrôle dans ma fenêtre:
<controls:ImageButton x:Name="btnAdd" Source="/DACMS;component/Resources/plus.png" ToolTipText="Add New Item" Click="btnAdd_Click" />
Comme je l'ai mentionné auparavant, l'image se lie très bien et je l'ai fait exactement la même chose manière.
Des idées?
Merci,
Sonny
EDIT: Je l'ai travaille maintenant. J'ai enlevé le ElementName de la liaison et ai placé le DataContext = this
du TextBlock dans le code derrière sur l'instanciation. Pourtant, j'aimerais savoir comment corriger cela dans le XAML, à la place.
Tout près. Je l'ai compris à la fin, mais je vais vous féliciter pour m'avoir mis sur la bonne voie. J'ai fini par changer ' ' à ' –
Vous ne pouvez pas mettre DataContext dans