2013-11-16 1 views
0

Я загрузил несколько json с веб-клиентом и сохранил его в изолированном хранилище после десериализации в виде строк. поэтому они теперь сохраняются, и я показываю их при запуске приложения, потому что веб-клиент загружает их, поэтому после загрузки они все еще существуют, как я могу обновить их новыми загруженными данными и не прерывать их, чтобы не мигать.сохранение строк в изолированном хранилище и после загрузки новых, обновляющих старые

у меня есть этот код:

IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings; 
if (!settings.Contains("temp")) 
{ 
    settings.Add("temp", tempTextBlock.Text.ToString()); 
} 
else 
{ 
    settings["temp"] = tempTextBlock.Text.ToString(); 
} 

, чтобы сохранить температуру в ISO. я использую их в «OnNavigatedTo», поэтому я вижу их, когда приложение запускается, но они остаются там даже после загрузки данных в фоновом режиме. что я могу сделать, чтобы просто обновить эту строку, которую я сохранил с новыми загруженными данными? есть ли способ сравнить данные, а затем отобразить только новый?

вот код:

public MainViewModel() 
    { 
     if (IsInDesignMode) 
     { 
      DayList = new ObservableCollection<List>(); 
      DayList.Add(new List { Time = DateTime.Now, weather = new System.Collections.Generic.List<Weather> { new Weather { icon = "01d", description = "sunćano" } }, main = new Main {temp = 8 } }); 
      DayList.Add(new List { Time = DateTime.Now.AddHours(1), weather = new System.Collections.Generic.List<Weather> { new Weather { icon = "01d", description = "sunćano" } }, main = new Main { temp = 10 } }); 
      DayList.Add(new List { Time = DateTime.Now.AddHours(2), weather = new System.Collections.Generic.List<Weather> { new Weather { icon = "01d", description = "sunćano" } }, main = new Main { temp = 6 } }); 
      CurrentDay = DayList[0]; 
     } 
     else 
     { 
      if (IsolatedStorageSettings.ApplicationSettings.Contains("temp")) 
      { 

здесь я хочу, чтобы проверить, если сохраненная строка новее или номер отличается, то новый один downlaoded прямо сейчас. проблема в том, что этот код здесь сохраняется после того, как позже загрузится anddont с другой загрузкой. из-за отсутствия сравнения :( } еще { }

 } 
    } 

и я использовал его в качестве завершения загрузки, чтобы показать данные на MainPage ...

void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) 
    { 
     if (e.Error == null) 
     { 
      RootObject json = JsonConvert.DeserializeObject<RootObject>(e.Result); 
      DayList = new ObservableCollection<List>(json.list); 
      CurrentDay = DayList[0]; 
     } 
     else 
     { 
      MessageBox.Show("error"); 
     } 
    } 

ответ

0

Я обнаружил, что в изолированные настройки, если вы используете Static strings, то изолированные настройки не будут работать, поскольку они создаются, когда при запуске приложения он просто сохраняет, но никогда не используется до запуска снова,

Изолированное хранилище предназначено для обеспечения безопасности данных, не предназначенных для передачи или хранения

+0

Да, я хочу сохранить его на одном и том же ключе, чтобы он работал каждый раз, как далеко в будущем. Я сохраняю этот ключ, когда он загружен, поэтому он находится в текстовом блоке с именем tempTextBlock. Я запускаю этот метод выше, когда этот текстовый блок является обработчиком событий LayoutUpdated. и я хочу сравнить их в первых строках кода, так что это в mvvm MainViewModel.cs есть мир, если его (IsInDesignMode) я использую else {}, но как сравнить два ?! любой пример, как это сделать? и другая проблема заключается в том, как установить более новый, который будет отображаться после этого сравнения? – dinchy87

+0

@ dinchy87 Я хочу увидеть код – techloverr

+0

, поэтому я добавил код выше, вы можете увидеть метод, который вызывается прямо при запуске приложения, это общедоступный MainViewModel() {...} , а код под ним показывает methos по мере того, как загрузка завершается, тогда она отображается на MainPage, там в коде позади я сохраняю его, как первый фрагмент кода. и если приложение открывается во второй раз, оно должно отображать эти строки, которые я сохранил, а затем после того, как загрузка просто исчезнет в новых загруженных данных, чтобы не прерывать данные на главной странице заметно. прямо сейчас проблема в том, что я открываю приложение, и я ничего не вижу перед загрузкой. – dinchy87

 Смежные вопросы

  • Нет связанных вопросов^_^