2014-08-27 3 views
0

В ListPicker в моем приложении Windows Phone есть список элементов, которые пользователь может выбрать один или несколько элементов и просмотреть выбранные элементы. До этого момента все идет хорошо после этого момента. Я хочу сохранить выбранные элементы на одной странице. Теперь, что происходит, когда я закрываю приложение и запускаю его снова, нет сохраненных выбранных элементов. Итак, мой вопрос заключается в том, как сохранить изменения, внесенные пользователем? Я не хочу сохранять их в отдельном файле в изолированном хранилище. Заранее спасибо.Как сохранить изменения в ListPicker Wp8

Вот код XAML:

<Border x:Name="Border" 
     Background="{TemplateBinding Background}" 
     BorderBrush="{TemplateBinding BorderBrush}" 
     BorderThickness="{TemplateBinding BorderThickness}"> 
    <UserControl x:Name="UserControl"> 
     <StackPanel> 
      <TextBlock x:Name="MultipleSelectionModeSummary" Margin="8 8 0 8" TextWrapping="Wrap" Width="300" HorizontalAlignment="Left"/> 
      <Canvas x:Name="ItemsPresenterHost" MinHeight="46"> 
       <ItemsPresenter x:Name="ItemsPresenter"> 
        <ItemsPresenter.RenderTransform> 
         <TranslateTransform x:Name="ItemsPresenterTranslateTransform"/> 
        </ItemsPresenter.RenderTransform> 
       </ItemsPresenter> 
      </Canvas> 
     </StackPanel>   
    </UserControl> 
</Border> 
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> 
    <ScrollViewer Grid.Row="1"> 
     <toolkit:ListPicker Header="Print in colors" 
          SelectionMode="Multiple" 
          FullModeHeader="Colors" 
          CacheMode="BitMapCache" 
          x:Name="PrintInColors" 
     Template="{StaticResource ListPickerControlTemplate1}"> 
      <sys:String>Cyan</sys:String> 
      <sys:String>Magenta</sys:String> 
      <sys:String>Yellow</sys:String> 
      <sys:String>Black</sys:String> 
      <sys:String>White</sys:String> 
      <sys:String>Blue</sys:String> 
      <sys:String>Orange</sys:String> 
      <sys:String>Gray</sys:String> 
      <sys:String>Silver</sys:String> 
     </toolkit:ListPicker> 
    </ScrollViewer> 
</Grid> 

Вот код CS:

private string Summarize(System.Collections.IList items) 
{ 
    string str = ""; 
    if (null != items) 
    { 
     if (items.Contains("Cyan")) 
     { 
      str += "Cyan"; 
     } 
     if (items.Contains("Magenta")) 
     { 
      str += "Mangeta"; 
     } 
     if (items.Contains("Yellow")) 
     { 
      str += "Yellow"; 
     } 
     if (items.Contains("Black")) 
     { 
      str += "Black"; 
     } 
     if (items.Contains("White")) 
     { 
      str += "White"; 
     } 
     if (items.Contains("Blue")) 
     { 
      str += "Blue"; 
     } 
     if (items.Contains("Orange")) 
     { 
      str += "Orange"; 
     } 
     if (items.Contains("Gray")) 
     { 
      str += "Gray"; 
     } 
     if (items.Contains("Silver")) 
     { 
      str += "Silver"; 
     } 
    } 

    return str; 
} 

ответ

0

Пожалуйста, переосмыслите. Для этого вам необходимо постоянное хранилище. Ваше приложение установлено и никогда не будет изменено. Я имею в виду, что все внесенные изменения внесены в память (ОЗУ), и они будут выгружены/удалены вскоре после закрытия приложения.

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

+0

Я думаю, ваше право, я должен изменить свою стратегию. Большое спасибо, –

+0

Добро пожаловать. FYI, если вы еще не посетили: [Что делать, если кто-то отвечает на мой вопрос?] (Http://stackoverflow.com/help/someone-answers) – har07

0

Лучшего случай для вашего приложения является использование изолированных storage.I думает, что это самое простой и лучший способ сделать it.follow ссылки, если вам нужно больше о изолированном хранилище ..

http://msdn.microsoft.com/en-us/library/cc221360(v=vs.95).aspx

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