none
Recuperar clave en Isolated Storaged RRS feed

  • Pregunta

  • Hola que tal, paso a dejarles esta pregunta que no encuentro el modo de solucionar mi problema. Estoy haciendo uso de almacenamiento aislado, el cual lo utilizo para guardar textbox. Ahora en determinadas ocasiones, deseo eliminar algún textbox y para ello requiero hacer uso del método Remove, sin embargo este me pide la clave del objeto. No sé cómo debo hacer para obtener la clave que está asociada a mi objeto.

    Espero me puedan ayudar

    Saludos,

    jueves, 27 de febrero de 2014 3:13

Respuestas

  • Hola McBoury,

    Ya entiendo lo que quieres hacer. A la hora de añadir dinamicamente los textbox,s debes asignarle un handler al evento que desees y cuan se produzca el evento podrás saber el objeto que lo lanzó mediante el sender que aparece en la firma del manejador. Si haces una conversión al tipo de objeto que sea podrás acceder a todas sus propiedades y recuperar la clave deseada.

    un saludo

    void AniadeNuevoTB_Click(object sender, RoutedEventArgs e) {     String id;     contador ++;     TextBox tb =newTextBox();     tb.Text = contador.ToString();     tb.DoubleTap += tb_DoubleTap;     MyStackPanel.Children.Add(tb); }

    void tb_DoubleTap(object sender, System.Windows.Input.GestureEventArgs e) {     var tb = (TextBox)sender;     var Clave = tb.Text; }

      

    viernes, 28 de febrero de 2014 22:24

Todas las respuestas

  • Hola McBoury,

    Remove te pide la clave del objeto que deseas borrar, es decir la clave con que lo guardaste, el nombre que le diste. En el ejemplo que te pongo más abajo esa clave es "userData"

    tomado de

    http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj714090(v=vs.105).aspx

    un saludo

    private void btnSave_Click(object sender, RoutedEventArgs e)
    {
        IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
        // txtInput is a TextBox defined in XAML.
        if (!settings.Contains("userData"))
        {
            settings.Add("userData", txtInput.Text);
        }
        else
        {
            settings["userData"] = txtInput.Text;
        }
        settings.Save();
    }

    private void btnRemove_Click(object sender, RoutedEventArgs e)
    {
        if (IsolatedStorageSettings.ApplicationSettings.Contains("userData"))
        {
            IsolatedStorageSettings.ApplicationSettings.Remove("userData");
       }
    }

    jueves, 27 de febrero de 2014 9:51
  • Hola, gracias por responder. El tema es el siguiente, en un panel tengo una cantidad X de textbox creados dinámicamente, en la que el primer textbox creado tiene clave 1, el siguiente 2 y así. Yo no sé cuál es la clave de un objeto en cuestión es por ello que necesito la forma de obtener la clave que está enlazada al objeto para poder eliminarlo. 

    En el ejemplo anterior, tú ya sabes la clave del objeto y por eso puedes eliminarlo.

    Saludos,

    jueves, 27 de febrero de 2014 17:38
  • Ahhhh, vale, ahora entiendo la pregunta. Pero aún así me surgen alguna duda. No sabes cual es la clave del objeto, pero ¿sabes cual es el objeto a borrar?. ¿Cómo se decide el textbox a borrar?. Lo elige el usuario o es la lógica de la aplicación.

    En principio si sabes cual es el textbox a borrar, podrás acceder a todas las propiedades del mismo. A lo mejor tienes que hacer casting del mismo (Textbox).

    Lo siento, pero no acabo de entender bien la situación.

    Un saludo

    viernes, 28 de febrero de 2014 16:47
  • Yo poseo un panel en el cual se van agregando a medida que lo necesita el usuario, textbox con su correspondiente contenido. Sin embargo, el usuario debe tener la posibilidad de eliminar los textbox que aparecen en dicho panel y para ello debo lograr obtener La clave del textbox en cuestión. Cuando el usuario hace dobletap sobre el textbox se abre una ventana que pregunta si desea eliminar el objeto, sin embargo no se la clave que tiene ya que fueron creados dinámicamente en el código utilizando un contador. Lo que requiero es como acceder a la clave con que fue guardado cada textbox para de ese modo poder utilizar el método remove. Espero tu respuesta, muchas gracias. Saludos,

    • Editado McBoury viernes, 28 de febrero de 2014 18:40
    viernes, 28 de febrero de 2014 18:37
  • Hola McBoury,

    Ya entiendo lo que quieres hacer. A la hora de añadir dinamicamente los textbox,s debes asignarle un handler al evento que desees y cuan se produzca el evento podrás saber el objeto que lo lanzó mediante el sender que aparece en la firma del manejador. Si haces una conversión al tipo de objeto que sea podrás acceder a todas sus propiedades y recuperar la clave deseada.

    un saludo

    void AniadeNuevoTB_Click(object sender, RoutedEventArgs e) {     String id;     contador ++;     TextBox tb =newTextBox();     tb.Text = contador.ToString();     tb.DoubleTap += tb_DoubleTap;     MyStackPanel.Children.Add(tb); }

    void tb_DoubleTap(object sender, System.Windows.Input.GestureEventArgs e) {     var tb = (TextBox)sender;     var Clave = tb.Text; }

      

    viernes, 28 de febrero de 2014 22:24
  • Exacto, yo hice eso de agregar un handler, el problema es que la propiedad text es utilizada por el usuario para poner lo que desea. Por lo tanto no puedo acceder a la clave a través de Text. Yo considero que debe haber algún modo de obtener la clave del objeto, a partir de una propiedad de Isolated Storage. Creo que por el momento una forma de obtener la clave será poniéndole de nombre al textbox el número de clave. Saludos y gracias por ayudarme.
    viernes, 28 de febrero de 2014 22:53