Comment spécifier une info-bulle pour un contrôle dans un style à partir de XAML?
Je suis en utilisant un WPF grille de données à partir de Microsoft projet CodePlex. J'ai un contrôle personnalisé qui je veux databind d'un champ à partir de la ligne de la grille de données. Je ne peux pas pour la vie de me comprendre comment spécifier une info-bulle sur une ligne de grille de données.
Le plus proche que je suis venu est d'utiliser un RowStyle avec un Setter pour définir l'info-bulle, mais cela ne semble fonctionner pour le texte. Quand j'ai essayer de mettre un ControlTempalte en tant que Valeur pour l'info-bulle, il affiche le résultat de l'appel à ToString sur le ControlTemplate type.
Je pense que j'ai besoin de définir le "Modèle" de la propriété de l'info-bulle, mais je n'arrive pas à comprendre comment le faire...
<dg:DataGrid Name="dgResults" AutoGenerateColumns="True">
<dg:DataGrid.RowStyle >
<Style TargetType="{x:Type dg:DataGridRow}">
<Setter Property="ToolTip" >
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToolTip}">
<StackPanel>
<TextBlock>txt1</TextBlock><TextBlock>txt2</TextBlock>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</dg:DataGrid.RowStyle>
</dg:DataGrid>
source d'informationauteur Sean Turner
Vous devez vous connecter pour publier un commentaire.
Pensé à elle... m'a pris environ 6 heures...
Pour une raison quelconque, je ne peux pas définir la valeur directement à l'aide de la Valeur.Setter. Si je définir le contenu de l'info-bulle comme une ressource statique bien, et puis le mettre dans le Style de la propriété de la grille de données.RowStyle il fonctionne.
Ainsi, la grille de ligne de style ressemble:
Et la ressource est
Merci!
La clé est d'utiliser la Propriété ToolTipService.Info-bulle, au lieu de l'info - bulle comme ceci:
J'ai aussi eu ce travail avec un couple de modifications; inclus au cas où il aide quelqu'un.
Mon Datadrid est lié à une liste d'objets personnalisés, je voulais afficher la chaîne "Nom" comme une colonne et la chaîne "texte" dans l'info-bulle. Le truc pour moi (newbe) était que je devais inclure la Colonne de Texte et de le cacher pour qu'il s'affiche dans l'info-bulle, c'est à dire:
Pas sûr que vous pouvez le faire par le biais de XAML.
Un moyen plus facile peut-être à juste gérer le LoadingRow événement. En xaml avoir quelque chose comme:
Ensuite dans le code derrière
Évidemment, vous aurez à changer le code selon la façon dont vous remplissez les données dans la grille de données. C'est également non testé =)
J'avais besoin de définir la bulle d'aide de façon dynamique basé sur le contenu de la cellule. Je suis l'aide de l'info-bulle pour afficher le texte de débordement de texte de la cellule. La liaison ci-dessous est à partir d'une classe c# propriété nommée CellText. Merci pour les posts ci dessus pour me permettre d'éviter de comprendre l'ensemble de la chose moi-même.
Il n'y a pas besoin de la
ControlTemplate
. Si vous voulez leStackPanel
dans leToolTip
suffit de le définir comme: