2008-09-16 26 views
7

Me falta el barco en algo aquí, niños. Esto sigue creciendo y no sé qué está pasando, así que espero que mis amigos aquí puedan ayudar.Enlace programático en Silverlight

Al trabajar en Silverlight, cuando creo enlaces en mi código C#, nunca se sostienen cuando la aplicación se está ejecutando. Los enlaces declarativos de mi xaml parecen estar bien, pero estoy haciendo algo mal cuando creo mis enlaces en C#. Espero que haya algo ciegamente obvio que me estoy perdiendo. He aquí una unión típica que se aplastó:

TextBlock tb = new TextBlock(); 
Binding b = new Binding("FontSize"); 
b.Source = this; 
tb.SetBinding(TextBlock.FontSizeProperty, b); 
+0

¿Qué quiere decir "aplastado"? ¿El enlace simplemente no funciona en absoluto? –

+0

Sí, parece que no tiene ningún efecto en el tiempo de ejecución. – MojoFilter

+10

Estoy tentado de censurarte por el uso de la palabra 'hogareño'. :-) –

Respuesta

2

Parece que a partir de Silverlight 3.1, al menos, esto ya no es un problema. No puedo reproducirlo, en cualquier caso.

+0

Puedo reproducir algo así http://stackoverflow.com/questions/3217740/silverlight-4-setbinding-not-working – cmaduro

7

he acaba de intentar el código exacto que acaba de publicar y funcionó bien, con algunos cambios. Creo que el problema es que el elemento que está utilizando para la llamada SetBinding no es el bloque de texto que desea vincular. Debe ser:

TextBlock tb = new TextBlock(); 
Binding b = new Binding("FontSize"); 
b.Source = this; 
tb.SetBinding(TextBlock.FontSizeProperty, b); 

Asegúrese de que también tiene una propiedad pública FontSize de tipo double en "this". Si "este" es un control de usuario, le recomendaría cambiar el nombre de la propiedad para que no se oculte el miembro heredado.

+0

Tienes razón, en realidad era solo un artefacto de copiar/pegar. En este caso, 'this' es un control personalizado y me refiero a su propiedad heredada FontSize. Veo que esto sucede todo. Me temo que es algo que estoy haciendo lo que realmente elimina el enlace, pero no puedo identificarlo. – MojoFilter

Cuestiones relacionadas