添加到收藏夹 windows phone
Add to favorites in windows phone
我的应用程序中有一个文本块,它会根据用户的喜好显示不同的文本。
我希望用户能够保存他们最喜欢的文本,单击按钮后将保存该文本。稍后,保存的最喜欢的文本列表将显示为一个选择选项。是否有人知道如何创建此流程?请提供代码示例。
文本块:
<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" />
我想知道如何将文本块中的当前文本添加到收藏文本列表。或者,另一种添加到收藏文本列表的方法。
这在很大程度上取决于您是要为应用程序的 运行 session 还是多次启动存储“收藏夹”。
如果您只是想临时存储它们,您可以创建一个 class 来保存收藏夹的 List<string>
,然后在“其他页面”上将它们加载到 [=13] =] 并使用数据绑定来显示它们。此处介绍了数据绑定 - https://msdn.microsoft.com/en-us/windows/uwp/data-binding/data-binding-quickstart
要保留收藏夹,您需要将它们保存在某个地方,最好是在文件中。最简单的方法是在 ApplicationData.Current.LocalFolder
中创建一个文件并将数据序列化到其内容中,并在下次应用程序启动时重新加载它们。使用 JSON 个文件的一个很好的序列化库是 JSON.NET。将数据序列化为 JSON 字符串并返回非常容易。然后,您可以使用 FileIO.WriteTextAsync()
和 FileIO.ReadTextAsync()
方法将数据写入文件和从文件读取数据。
简单的例子
在第一页上你可以有一个 TextBox
和一个 Button
。当用户在 TextBox
中键入内容并单击 Button
时,您可以这样做:
FavoritesManager.AddAsync( inputBox.Text );
FavoritesManager
class 大致如下所示:
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>
中,并使用数据绑定将它们绑定到列表控件:-) .
我的应用程序中有一个文本块,它会根据用户的喜好显示不同的文本。
我希望用户能够保存他们最喜欢的文本,单击按钮后将保存该文本。稍后,保存的最喜欢的文本列表将显示为一个选择选项。是否有人知道如何创建此流程?请提供代码示例。
文本块:
<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" />
我想知道如何将文本块中的当前文本添加到收藏文本列表。或者,另一种添加到收藏文本列表的方法。
这在很大程度上取决于您是要为应用程序的 运行 session 还是多次启动存储“收藏夹”。
如果您只是想临时存储它们,您可以创建一个 class 来保存收藏夹的 List<string>
,然后在“其他页面”上将它们加载到 [=13] =] 并使用数据绑定来显示它们。此处介绍了数据绑定 - https://msdn.microsoft.com/en-us/windows/uwp/data-binding/data-binding-quickstart
要保留收藏夹,您需要将它们保存在某个地方,最好是在文件中。最简单的方法是在 ApplicationData.Current.LocalFolder
中创建一个文件并将数据序列化到其内容中,并在下次应用程序启动时重新加载它们。使用 JSON 个文件的一个很好的序列化库是 JSON.NET。将数据序列化为 JSON 字符串并返回非常容易。然后,您可以使用 FileIO.WriteTextAsync()
和 FileIO.ReadTextAsync()
方法将数据写入文件和从文件读取数据。
简单的例子
在第一页上你可以有一个 TextBox
和一个 Button
。当用户在 TextBox
中键入内容并单击 Button
时,您可以这样做:
FavoritesManager.AddAsync( inputBox.Text );
FavoritesManager
class 大致如下所示:
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>
中,并使用数据绑定将它们绑定到列表控件:-) .