quinta-feira, 29 de novembro de 2012

Windows Phone - Isolated Storage (Listas)


Inserir e eliminar dados de uma lista na Isolated Storage

Classe horarios

namespace StudentOrganizer.BD
{
    public class horarios
    {
       
        public int id_horario { get; set; }
        public string nome { get; set; }
       

        public horarios()
        {
           
            id_horario = 0;
            nome = "";
        }

    }
}



Classe funções
Nesta classe é onde está definida a lista e a função para inserir dados.

namespace StudentOrganizer
{
    public class funcoes
    {
  //DEFINIR LISTA DE HORARIOS
  public List<BD.horarios> lista_horarios = new List<BD.horarios>();
    //FUNCAO USADA PARA INSERIR UM NOVO HORARIO
    public void _inserir_horario(int _id_horario, string _nome)
    {
     BD.horarios _inserir_novo_horario = new BD.horarios();
     _inserir_novo_horario.id_horario = _id_horario;
     _inserir_novo_horario.nome = _nome;
     lista_horarios.Add(_inserir_novo_horario);
    }
 }
}



Página xmal.cs

 public inserir_horario()
        {
            InitializeComponent();
        }
    

      public funcoes _horario = new funcoes();

  //VERIFICA SE JA EXISTE A CHAVE "lista_horarios_iso"
  if(IsolatedStorageSettings.ApplicationSettings.Contains("lista_horarios_iso")) {  
   //SE EXISTIR VAI CARREGAR OS DADOS DA ISOLATED STORAGE
  _horario.lista_horarios = (List<StudentOrganizer.BD.horarios>)IsolatedStorageSettings.ApplicationSettings["lista_horarios_iso"];

     //A PARTIR DAQUI PODEMOS ACEDER AOS DADOS ATRAVEZ DE UM INDICE
 
     string nome_horario = _horario.lista_horarios[1].nome;
  }else{
   //SENAO PODEMOS INSERIR UM HORARIO
   //EM QUE O PRIMEIRO ELEMENTO É O INDICE E O SEGUNDO É O NOME DO TIPO STRING
   _horario._inserir_horario(0, txbx_nome_horario.Text);
   //GRAVAR OS DADOS NA ISOLATED STORAGE
   IsolatedStorageSettings.ApplicationSettings["lista_horarios_iso"] = _horario.lista_horarios;
   IsolatedStorageSettings.ApplicationSettings.Save();
  }
 


Remover dados da lista
Remover dados de um determinado índice

  _pgDefinicoes.lista_horarios.RemoveAt(i);