[英]windows phone 8.1 history
我正在创建Windows Phone 8.1应用程序。 我试图将单击/点击的项目保存在列表视图中,但我不知道如何。
我正在尝试执行的代码:
List<string> History = new List<string>();
private async Task SaveTextFile(string str)
{
StorageFolder Folder1 = ApplicationData.Current.LocalFolder;
StorageFolder Folder2 = await Folder1.CreateFolderAsync("Sample Save", CreationCollisionOption.OpenIfExists);
StorageFile File1 = await Folder2.CreateFileAsync("History.txt", CreationCollisionOption.ReplaceExisting);
byte[] data = Encoding.Unicode.GetBytes(str);
using (var f = await File1.OpenStreamForWriteAsync())
{
await f.WriteAsync(data, 0, data.Length);
}
}
private async Task<string> GetTextFile()
{
StorageFolder Folder1 = ApplicationData.Current.LocalFolder;
StorageFolder Folder2 = await Folder1.CreateFolderAsync("Sample Save", CreationCollisionOption.OpenIfExists);
try
{
StorageFile File1 = await Folder2.GetFileAsync("History.txt");
return (await FileIO.ReadTextAsync(File1));
}
catch (Exception)
{
return "";
}
}
private async void Refresh_It()
{
try
{
string Str1 = await GetTextFile();
TextBox1.Text = Str1;
string[] Str2 = Str1.Split(new string[] { "/" }, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < Str2.Count(); i++)
{
History.Add(Str2[i]);
}
for (int i = 0; i < ListView1.Items.Count; i++)
{
if (History.IndexOf(ListView1.Items[i].ToString()) != -1)
{
ListView1.Items[i] = ListView1.Items[i].ToString() + " Clicked";
}
}
}
catch (Exception ex)
{
Label1.Text = ex.Message;
}
}
private async void LayoutRoot_Loaded(object sender, RoutedEventArgs e)
{
for (int i = 0; i < 40; i++)
{
ListView1.Items.Add(i.ToString());
}
Refresh_It();
}
private async void ListView1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
string selecteds = e.AddedItems.First().ToString();
History.Add(selecteds);
string str1 = "";
for (int i = 0; i < History.Count; i++)
{
str1 += History[i];
if (i != (History.Count -1)) { str1 += "/"; }
}
await SaveTextFile(str1);
History.Clear();
}
catch (Exception ex)
{
Label1.Text = ex.Message;
}
Refresh_It();
}
XML:
<Grid x:Name="LayoutRoot" Loaded="LayoutRoot_Loaded">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<ListView x:Name="ListView1" Grid.Row="1" Background="White" Foreground="Black" SelectionChanged="ListView1_SelectionChanged"/>
<ScrollViewer Height="Auto" Grid.Row="0">
<TextBlock x:Name="Label1"/>
</ScrollViewer>
</Grid>
在我的代码中,im试图获取“历史文件”文本并将其拆分以放入“历史记录(字符串列表)”中。 更改选择时,始终在“历史记录(列表)”中添加字符串。 但是由于某种原因,我的代码无法正常工作,看来问题出在拆分和检查列表项是否在“历史记录(字符串列表)”中。
如果历史记录中有“ 24”,我希望我的应用程序在ListView中添加一个ex。“ 24 Clicked”。 我在pageLoad中以及单击某个项目时将历史记录加载。
请帮助。 对不起,英语不好。
为什么不使用SQLite? SQLite将更有用,更容易
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.