添加到windows phone中的收藏夹

本文关键字:收藏夹 phone windows 添加 | 更新日期: 2023-09-27 18:15:34

我的应用程序中有一个文本块,它将根据用户的喜好显示不同的文本。

我希望用户能够保存他们最喜欢的文本,点击按钮后就会保存。稍后,保存的收藏夹文本列表将显示为选择选项。有人知道如何创建这个过程吗?请提供一个代码示例。

文本块:

<TextBlock x:Name="StringTextBlock" Text="" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}" />

按钮:

<Button Grid.Row="2" x:Name="AddToFavoritesButton" 
        Content="Add" Style="{StaticResource ButtonStyle2}" Margin="2"
        Click="AddToFavoritesButton_Click"/>

C#

private void AddToFavoritesButton_Click(object sender, RoutedEventArgs e)
{
}

以及另一个页面上的列表框,稍后点击收藏夹按钮即可访问

<ListBox x:Name="FavoriteListBox" />

我想知道如何将文本块中的当前文本添加到喜爱的文本列表中。或者,另一种添加到收藏夹文本列表的方式。

添加到windows phone中的收藏夹

这在很大程度上取决于您是否要存储;收藏夹";仅用于应用程序的运行会话或多次启动。

如果你只是想暂时存储它们,你可以创建一个类,为收藏夹保存一个List<string>,然后在";其他页面";将它们加载到CCD_ 2中并使用数据绑定来显示它们。数据绑定介绍如下-https://msdn.microsoft.com/en-us/windows/uwp/data-binding/data-binding-quickstart

要保存收藏夹,您需要将它们保存在某个位置,最好保存在文件中。最简单的方法是在ApplicationData.Current.LocalFolder中创建一个文件,并将数据序列化到其内容中,然后在下一次应用程序启动时再次重新加载。JSON是处理JSON文件的一个很好的序列化库。NET。将数据序列化为JSON字符串并返回非常容易。然后可以使用FileIO.WriteTextAsync()FileIO.ReadTextAsync()方法向文件写入数据和从文件读取数据。

简单示例

在第一个页面上,您可以有一个TextBoxButton。当用户在TextBox中键入内容并单击Button时,可以执行以下操作:

FavoritesManager.AddAsync( inputBox.Text );

FavoritesManager类大致如下所示:

public static class FavoritesManager
{
    List<string> _favorites = null;
    public static async Task LoadFromStorageAsync()
    {
        _favorites = 
            JsonConvert.DeserializeObject<List<string>>( 
                await FileIO.ReadAllTextAsync( "somefile.txt" ) );
    }
    public static async Task AddAsync( string text )
    {
        _favorites.Add( text );
        await FileIO.WriteAllTextAsync( "somefile.txt",
           JsonConvert.SerializeObject( _favorites ) );                    
    }
    public static IEnumerable<string> GetFavorites()
    {
       return _favorites;
    }
}

在尝试获取收藏夹之前,您必须调用LoadFromStorageAsync方法,以便在_favorites列表中做好准备。

在第二个页面上,您只需调用GetFavorites来检索收藏夹,然后将它们存储在ObservableCollection<string>中,并使用数据绑定将它们绑定到列表控件:-(。