none
Evento TextChanged para un control TextBlock RRS feed

  • Pregunta

  • Hola estoy iniciando con WPF y tengo un problema estoy tratando de encontrar un evento que se asimile al textchange en un control textblock para saber cuando haya un cambio de texto en ese control textblock, espero me puedan ayudar con este caso. Gracias.
    miércoles, 6 de febrero de 2013 17:32

Todas las respuestas

  • Hola Jorge.

    El control TextBlock no tiene entrada para cambiar el texto, para ello esta el control TexBox, de modo que no tiene sentido ese evento en el.

    Lo ideal es usar un ViewModel y en la propiedad enlazada al texto hacer un notifychanged para notificar que ha cambiado la propiedad. En WPF se separan los datos de la visualizacion y para programar con el deberia seguirse la misma metodologia, esto quiere decir que no cambia el texto del TextBlock, lo que cambia es la propiedad de un modelo enlazado al TextBlock para que sea visualizada.

    No obstante como he comentado WPF separa la visualizacion de los datos, de modo que te permite mucha flexibiliad a la hora de definir el diseño de un control y puedes modificar la plantilla de un TextBox para que tenga la misma visualizacion que un TextBlock, por ejemplo con un codigo como este:

            <TextBox Height="23" HorizontalAlignment="Left" Name="textBox1" VerticalAlignment="Top" Width="120" TextChanged="textBox1_TextChanged" >
                <TextBox.Template>
                    <ControlTemplate  TargetType="{x:Type TextBox}">
            			<ContentControl Content="{TemplateBinding Text}"></ContentControl>
            		</ControlTemplate>
                </TextBox.Template>
            </TextBox>


    Saludos
    David González
    MCP, MCTS
    Visita mi Blog en: http://www.dgzornoza.com/

    miércoles, 6 de febrero de 2013 19:02