2013-05-15 6 views
22

Ich habe eine Bindung, wo die Path zu Path=Item.Tag.caption gesetzt ist, aber ich muss werfen Item-IEDGE zuerst, damit ich die Tag Eigentum zugreifen. Gibt es einen Weg, dies zu erreichen?WPF Bindung: Casting in Bindungspfad

+0

Sind Sie dieser oder in XAML in Code zu tun? –

+0

Ich muss dies in Xaml tun – Aminouvic

+0

@Aminouvic Wenn 'Item' ist die Umsetzung' IEDGE' und 'Tag' ist eine Eigenschaft, sollte es funktionieren, wie Sie es gepostet haben. Welchen Fehler bekommst du? – DHN

Antwort

46

Die Lösung für das Problem ist schließlich folgende Syntax zu verwenden:

Path=Item.(myNameSpace:IEdge.Tag).caption 

Der vorherige Code Item den Typen IEdge um die Tag Eigenschaft zuzugreifen werfen.

Bei mehreren verschachtelten wirft das globale Muster:

Path=Obj1.(ns1:TypeObj1.Obj2).(ns2:TypeObj2.Obj3)...(nsN:TypeObjN.BindedProp) 
+0

Das funktioniert nicht für mich. Der gesamte Ausdruck in Klammern wird wie eine Eigenschaft behandelt. Wo haben Sie Informationen darüber gefunden? Ich suchte wie das gesamte Internet und fand nie so etwas außer Ihrer Antwort hier ... – Libor

+1

Okay, ich habe es geschafft, aber immer noch - wo Sie diese Informationen gefunden? Es scheint, als ob einige WPF unter der Haube undokumentierte schwarze Magie ... – Libor

+2

@Libor: Eigentlich habe ich die Lösung auf msdn [PropertyPath XAML Syntax] (http://msdn.microsoft.com/en-us/library/ms742451 .aspx) mit ** Eigenschaft Teilqualifikation ** siehe Abschnitt ** Einzeleigentum, angehängt oder sonst Typ-qualifiziert ** – Aminouvic