[英]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.