2014-08-27 52 views
0

在我的Windows Phone應用程序的ListPicker中有一個項目列表,用戶可以選擇一個或多個項目並查看這些選定項目。 在這一點之前,一切都很順利,我希望將選定的項目保存在同一頁面上。現在當我關閉應用程序並再次啓動時會發生什麼情況,沒有保存選定的項目。所以我的問題是如何保存用戶所做的更改?實際上,我不想將它們保存在獨立存儲中的單獨文件中。提前致謝。如何在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

請重新考慮。您需要持久存儲來實現這一點。您的應用程序已安裝,永遠不會更改。我的意思是,用戶所做的所有更改都在內存(RAM)中,並且在應用程序關閉後不久將被卸載/刪除。

隔離存儲是爲此目的最常用的持久存儲。就我所見,它比較簡單(與保存到本地或在線數據庫相比),因此您應該考慮將數據保存到獨立存儲中。

+0

我想你的權利我應該改變我的策略。非常感謝, – 2014-08-27 13:54:34

+0

不客氣。僅供參考,如果您未訪問:[我應該怎麼做當有人回答我的問題?](http://stackoverflow.com/help/someone-answers) – har07 2014-08-27 14:00:22