2011-03-11 12 views
6

he creado un cuadro de texto simple con una unión en una pura WPF-VentanaEncuadernación en cuadros de texto no funcionan

<TextBox Name="MyTextBox" 
     Focusable="True" Width="150" 
     Text="{Binding MyText, UpdateSourceTrigger=PropertyChanged}"</TextBox> 

Mi problema es, que la propiedad de cadena subyacente 'MyText' no se actualiza en todo caso. Si escribo un carácter de espacio, la propiedad se actualiza. Si pego texto a través del portapapeles en el TextBox, la propiedad MyText se actualiza. Pero si escribo cualquier otro personaje, no pasa nada. He registrado un controlador de eventos para TextChanged para fines de depuración. El evento solo ocupa el carácter de espacio y la operación de pegar, pero no para otros personajes.

Algunas palabras sobre mi entorno: La WPF-Window se puede reducir a este TextBox. Abro esta ventana desde dentro de una DLL. El proyecto completo estaba dirigido a .Net2, ahora, debido a WPF, al Framework 3.5. No sé cómo hacer esto más simple para encontrar el problema.

+0

¿Estás seguro de que no hay errores vinculantes? ¿Cómo se ve la estructura subyacente? Por cierto ... hay un '>' perdido en tu código. – DHN

+0

Eche un vistazo a la ventana de la herramienta "Salida" de Visual Studio. ¿Hay algún error de enlace mostrado allí? – Heinzi

+0

No, no se muestran errores de enlace. El texto del portapapeles o los caracteres espaciales llegan a la propiedad subyacente. – Jens

Respuesta

5

Usted mencionó Framework 2.0. Si su aplicación se basa en Windows Forms, debe tener en cuenta algunos temas de interoperabilidad. ¿Ha intentado lo siguiente antes de la apertura de la ventana:

System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop (YourWindowObject)

De lo contrario tratar de abrir la ventana de una aplicación WPF.

1

De forma predeterminada, el modo de un enlace es de una sola vía. Esto significa que se carga desde una propiedad de manera predeterminada, pero no se configurará. Agregue "Modo = Twoway" en su enlace (vea el fragmento de código) y vea si esto resuelve su problema.

<TextBox Name="MyTextBox" 
    Focusable="True" Width="150" 
    Text="{Binding MyText, Mode=Twoway, UpdateSourceTrigger=PropertyChanged}"> 
</TextBox> 
Cuestiones relacionadas