2011-02-06 17 views
5

Ho un elemento dell'interfaccia utente il cui colore mi piacerebbe impostare in base a una variabile locale nella pagina (beh, in realtà in un modulo, ma posso spostarlo nella pagina).WP7 Collegamento a variabile locale

vedo in WPF si può associare un elemento dell'interfaccia utente a una variabile locale, rendendo la variabile una proprietà e l'impostazione del legame RelativeSource alla classe genitore utilizzando FindAncestor:

WPF Binding to local variable

Purtroppo Silverlight non sembra supportare la modalità TrovaAncestor.

Qualsiasi soluzione possibile oppure devo creare un'istanza di una classe personalizzata e tale solo per questa variabile?

risposta

7

Ho passato da Silverlight a WPF molto nelle ultime settimane, quindi la seguente idea può o non può volare.

La pagina contiene la proprietà del nome? In caso contrario, impostalo (x: Name = "MyPage").

allora si può fare:

Fill="{Binding ElementName=MyPage, Path=MyProperty}" 

Dare che una prova (appena fuori dalla parte superiore della mia testa)

+0

+1, stavo per pubblicare la stessa risposta. Il collegamento ElementName è la solita soluzione (più debole) per la mancanza di FindAncestor. FWIW, FindAncestor binding è in arrivo in Silverlight 5, quindi speriamo che questo possa finalmente arrivare al telefono. –

+0

Hmm ha dato un colpo con una proprietà intera per mantenerlo semplice. Chiamata la pagina "MyPage", quindi nell'elemento dell'interfaccia utente, inserire: ''. Nel codice della pagina, ho: 'Proprietà gDirection As Integer = 45'. Ciò genera un'eccezione sul carico. Se sostituisco il binding con 45, funziona bene, quindi sembra che l'associazione non funzioni ... – amb9800

+0

qual è l'eccezione? – Mark

Problemi correlati