簡體   English   中英

Windows Phone 8.1歷史記錄

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM