如何保存ListPicker Wp8中的更改

时间:2014-08-27 13:09:53

标签: c# windows-phone-8 listpicker

在我的Windows Phone应用程序的ListPicker中,有一个项目列表,用户可以选择一个或多个项目并查看这些项目。 在此之前,一切都很顺利,我希望将所选项目保存在同一页面上。现在当我关闭应用程序并再次启动时会发生什么,没有保存选定的项目。所以我的问题是如何保存用户所做的更改?我实际上并不想将它们保存在隔离存储器中的单独文件中。提前谢谢。

以下是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;
}

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

请重新考虑。您需要持久存储来实现这一目标。您的应用程序已安装且永远不会更改。我的意思是,用户所做的所有更改都在内存(RAM)中,并且在应用程序关闭后很快就会被卸载/删除。

隔离存储是用于此目的的最常用的持久存储。就我所见,它相对简单(与保存到本地或在线数据库相比),所以你真的应该考虑将数据保存到独立存储。

答案 2 :(得分:0)

您的应用的最佳情况是使用独立存储。我认为这是最简单和最好的方式。如果您需要更多关于隔离存储的话,请点击链接。

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