Principales respuestas
Bindar texto de TexBlock con propiedad

Pregunta
-
Hola,
tengo un TextBlock que quiero bindar con una propiedad definida en mi CodeBehind:
public string Mensaje { get; set; }
El Mensaje cambiará durante el ciclo de vida de la aplicación y ha de verse reflejado en el textblock. He intentado varias opciones en el binding, pero no hay manera...<TextBlock x:Name="txtMensaje" Text="{Binding Mensaje}"/></TextBlock>
¿cómo podría bindar el texto a mi propiedad?Gracias,
Dani.
Respuestas
-
Hola Kenny
Te recomendaría que probaras usar MVVM aunque si solo estas en fase de aprendizaje entonces no lo hagas.
Con respecto a tu problema te dejo un tutorial de Binding en Silverlight y esto donde se muestra la respuesta que buscas aunque no usan code-behind para crear el Mensaje sino un pequeño modelo http://forums.silverlight.net/forums/p/17929/60067.aspx.
Saludos
Antonio Lobo
Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
Si la respuesta te ha sido util Votala.
Mi blog- Marcado como respuesta DaniCCardenas miércoles, 13 de julio de 2011 7:38
Todas las respuestas
-
Buenas Dani,
primero te sobra volver a cerrar el TextBlock, después, si has puesto la propiedad en el CodeBehind, deberás hacer que el DataContext de la vista sea el mismo:
public MainWindow() { InitializeComponent(); Mensaje = "Si"; DataContext = this; }
en principio con eso ya te funcionará.Saludos.
-
Hola Cesar, gracias por responder.
Lo primero, aunque llevo bastante programando con .Net, soy muy novato con Silverlight, así que tal vez diga barbaridades ;)
Lo del DataContext, lo habia pensado, pero el problema es que en la página hay varios controles y DataGrids que bindan con otros datos y no se si haciendolo así me afectará al resto de controles de la página.
Los DataGrids los bindo desde code behind con el ItemSource.
Saludos!
-
Entonces el problema es otro. Yo me refería a WPF, pero entiendo que esto aplica igual. Las soluciones que puedes probar si te sirven son:
- Hacer una clase aparte para poner como DataContext general en la vista y que tenga como propiedades lo que enlazas tanto en los DataGrids como en el resto de controles (incluido TextBox).
- Que el DataContext del TextBox sea otra entidad que contenga la propiedad Mensaje.
- Extraer los DataGrids a otros UserControl he incrustarlos en tu vista y gestionar sus DataContext.
Suerte.
-
-
Hola Kenny
Te recomendaría que probaras usar MVVM aunque si solo estas en fase de aprendizaje entonces no lo hagas.
Con respecto a tu problema te dejo un tutorial de Binding en Silverlight y esto donde se muestra la respuesta que buscas aunque no usan code-behind para crear el Mensaje sino un pequeño modelo http://forums.silverlight.net/forums/p/17929/60067.aspx.
Saludos
Antonio Lobo
Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
Si la respuesta te ha sido util Votala.
Mi blog- Marcado como respuesta DaniCCardenas miércoles, 13 de julio de 2011 7:38
-