Ich bin erst zwei Wochen in WPF, also ist das wahrscheinlich eine triviale Frage. Ich habe eine Sammlung "CellList", die einige Eigenschaften hat, die ich an ein ToolTip
binden möchte. Wenn ich also den Mauszeiger über ein Label halte, wird Information von der aktuellen Instanz von CellList
angezeigt. Wie mache ich das? Ich verstehe einfache Bindung und diese vielleicht einfache Bindung auch, aber ich kann meinen Kopf nicht darum herumwickeln. Unten ist mein XAML für das Label. Könnte mir jemand erklären, wie ich das erreichen kann?
Danke.
Das Problem bei ToolTip
s ist, dass ein ToolTip
ein Objekt ist, das Sie einem Steuerelement zuordnen und nicht Teil des visuellen Baums des Steuerelements. Sie können es also nicht so füllen, wie Sie Dinge in den visuellen Baum einfügen würden, z. B .:
Stattdessen müssen Sie eine spezifische Instanz einer QuickInfo erstellen und ihr einen Style zuweisen, der ihr DataContext
festlegt (sehr wichtig; so können Sie an die Eigenschaften der Datenquelle ihrer "Platzierung" binden) target ", dh das Steuerelement, das den Tooltip anzeigt, und seine Template
. Fügen Sie dann den visuellen Baum von ToolTip
, einschließlich Bindings, in die Vorlage ein. Verweisen Sie schließlich auf das ToolTip
in Ihrem Steuerelement.
Also, hier ist ein TextBox
, dessen Binding
Validierung macht:
Es verwendet dieses ToolTip
:
Und der ToolTip
verwendet diesen Stil, der seinen Inhalt von der ValidationError
Eigenschaft der TextBox
's Bindungsquelle bezieht:
Ich bin mir nicht sicher, aber ich denke, dass der einzige Teil des Obigen, der tatsächlich im Stil gesetzt werden muss, der DataTrigger
ist, der DataContext
setzt; Ich denke, dass alles andere nur explizit im visuellen Baum von ToolTip
festgelegt werden kann. Aber ich denke wahrscheinlich nicht an etwas Wichtiges.
Tags und Links wpf data-binding tooltip hierarchicaldatatemplate