Windows Phone y enlaces bidireccionales y pérdida de foco

En Windows Phone a los enlaces bidireccionales existe solo dos formas de actualizar la fuente: Default y Explicit

Aquí tienes la información del MSDN : UpdateSourceTrigger Enumeration

En realidad no hay ningún problema ya que el perder el foco ya funciona correctamente. Lo que pasa es que en Windows Phone la application bar no genera perdida de foco y en el caso de que estuvieses escribiendo en un textbox el cambio no se propaga a la fuente.

Así, se puede dar el caso siguiente:

Tienes una página donde se pide escribir un texto y en la application bar un botón que al pulsar usa este texto para consultar. Lo que el usuario hará será pulsar en textbox, luego le aparece el teclado del Windows Phone, escribe y luego pulsa directamente en el botón de la application bar.

El comando se ejecuta pero la propiedad enlazada al textbox no se actualiza porque no ha habido perdida de foco.

Así que lo que tenemos que hacer es provocar nosotros mismos que se actualice. Esto es lo que escribiremos en el método Click del botón de la application bar.

object focusObj = FocusManager.GetFocusedElement();
if (focusObj != null && focusObj is TextBox)
{
var binding = (focusObj as TextBox).GetBindingExpression(TextBox.TextProperty);
  binding.UpdateSource();
}

Más información:

TextBox Binding TwoWay Doesn’t Update Until Focus Lost WP7

Anuncis

Un pensament sobre “Windows Phone y enlaces bidireccionales y pérdida de foco

  1. Right here iis the right site for anyone who hopes
    to find out about this topic. You understand a whole lott its
    almost hard to argue with you (not that I actually would want to…HaHa).

    You definitely put a brand neew spin onn a topic that haas been writfen about for ages.
    Excelpent stuff, juszt great!

Deixa un comentari

Fill in your details below or click an icon to log in:

WordPress.com Logo

Esteu comentant fent servir el compte WordPress.com. Log Out / Canvia )

Twitter picture

Esteu comentant fent servir el compte Twitter. Log Out / Canvia )

Facebook photo

Esteu comentant fent servir el compte Facebook. Log Out / Canvia )

Google+ photo

Esteu comentant fent servir el compte Google+. Log Out / Canvia )

Connecting to %s