2013-05-15 10 views
22

vincolante Sono un legame in cui la Path è impostato su Path=Item.Tag.caption, ma ho bisogno di lanciare Item-IEDGE prima in modo da poter accedere al Tag proprietà. C'è un modo per raggiungere questo obiettivo?WPF Rilegatura: Casting in percorso

+0

stai facendo questo in codice o in XAML? –

+0

Ho bisogno di farlo in Xaml – Aminouvic

+0

@Aminouvic Se 'Item' sta implementando' IEDGE' e 'Tag' è una proprietà, dovrebbe funzionare come se l'avessi postata. Che errore stai ottenendo? – DHN

risposta

46

La soluzione del problema, infine, è quello di utilizzare seguente sintassi:

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

Il codice precedente gettato Item al tipo IEdge per accedere alla proprietà Tag.

In caso di più nidificato getta il modello globale è:

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

Che non funziona per me. L'intera espressione tra parentesi è trattata come una proprietà. Dove hai trovato informazioni su questo? Ho cercato come l'intera Internet e non ho mai trovato nulla di simile tranne la tua risposta qui ... – Libor

+1

Ok, l'ho fatto funzionare ma ancora - dove hai trovato questa informazione? Sembra una magia nera senza documenti sotto il cofano di WPF ... – Libor

+2

@Libor: In realtà ho trovato la soluzione su msdn [Sintassi XAML di PropertyPath] (http://msdn.microsoft.com/en-us/library/ms742451 .aspx) utilizzando ** Qualifica parziale proprietà ** vedi sezione ** Proprietà singola, collegata o altrimenti qualificata tipo ** – Aminouvic