windows phone 7中的列表框项

本文关键字:列表 phone windows | 更新日期: 2023-09-27 18:03:33

我试图在两个页面之间导航

对于视图页,有一个列表框,我选择一个项目,它将导航到"详细信息页"。

当我按手机的后退键时,它将我从"详细信息页面"导航到"查看页面"。

但是"查看页面"的列表框显示的是选中的项目。

如何刷新"查看页面",使列表框不显示任何已选中的内容

手机"详情页"我的键返回键代码:

private void PhoneApplicationPage_BackKeyPress(object sender,
                                               System.ComponentModel.CancelEventArgs e)
{
    string selectedFolderName = selectedFolderName2;
    NavigationService.Navigate(
        new Uri(
            "/DisplaySchedule.xaml?=selectedFolderName2" + selectedFolderName,
            UriKind.Relative));
}

我的导航页面代码"viewPage:

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
    base.OnNavigatedTo(e);
    selectedFolderName = "";
    if (NavigationContext.QueryString.TryGetValue("selectedFolderName", out selectedFolderName))
        selectedFolderName1 = selectedFolderName;

        IsolatedStorageFile myStore = IsolatedStorageFile.GetUserStoreForApplication();
        //For time
        try
        {
            StreamReader readFileTime = new StreamReader(new IsolatedStorageFileStream(selectedFolderName1 + "''time.Schedule", FileMode.Open, myStore));
            //For title
            StreamReader readFileTitle = new StreamReader(new IsolatedStorageFileStream(selectedFolderName1 + "''title.Schedule", FileMode.Open, myStore));
            //For category
            StreamReader readFileCategory = new StreamReader(new IsolatedStorageFileStream(selectedFolderName1 + "''category.Schedule", FileMode.Open, myStore));

            String timeText = readFileTime.ReadLine();
            timeSplit = timeText.Split(new char[] { '^' });
            String titleText = readFileTitle.ReadLine();
            titleSplit = titleText.Split(new char[] { '^' });
            String categoryText = readFileCategory.ReadLine();
            categorySplit = categoryText.Split(new char[] { '^' });
        }
        catch (Exception)
        {
        }
        //Define grid column, size
        Grid schedule = new Grid();
        if (scheduleListBox.Items.Count == 0)
        {
            foreach (var time in timeSplit)
            {
                timeList = time;
                //Column 1 to hold the time of the schedule
                ColumnDefinition scheduleTimeColumn = new ColumnDefinition();
                GridLength timeGrid = new GridLength(110);
                scheduleTimeColumn.Width = timeGrid;
                schedule.ColumnDefinitions.Add(scheduleTimeColumn);
                //Text block that show the time of the schedule
                TextBlock timeTxtBlock = new TextBlock();
                timeTxtBlock.Text = time;
                //Set the alarm label text block properties - margin, fontsize
                timeTxtBlock.FontSize = 28;
                timeTxtBlock.Margin = new Thickness(0, 20, 0, 0);
                //Set the column that will hold the time of the schedule
                Grid.SetColumn(timeTxtBlock, 0);
                schedule.Children.Add(timeTxtBlock);
            }
            foreach (var title in titleSplit)
            {
                titleList = title;
                //Column 2 to hold the title of the schedule
                ColumnDefinition scheduleTitleColumn = new ColumnDefinition();
                GridLength titleGrid = new GridLength(500);
                scheduleTitleColumn.Width = titleGrid;
                schedule.ColumnDefinitions.Add(scheduleTitleColumn);
                //Text block that show the title of the schedule
                TextBlock titleTxtBlock = new TextBlock();
                if (title.Length > 10)
                {
                    string strTitle = title.Substring(0, 10) + "....";
                    titleTxtBlock.Text = strTitle;
                }
                else
                {
                    titleTxtBlock.Text = title;
                }
                //Set the alarm label text block properties - margin, fontsize
                titleTxtBlock.FontSize = 28;
                titleTxtBlock.Margin = new Thickness(0, 20, 0, 0);
                //Set the column that will hold the title of the schedule
                Grid.SetColumn(titleTxtBlock, 1);
                schedule.Children.Add(titleTxtBlock);
            }
            foreach (var category in categorySplit)
            {
                categoryList = category;
                //Column 3 to hold the image category of the schedule
                ColumnDefinition categoryImageColumn = new ColumnDefinition();
                GridLength catImgnGrid = new GridLength(70);
                categoryImageColumn.Width = catImgnGrid;
                schedule.ColumnDefinitions.Add(categoryImageColumn);
                TextBlock categoryTxtBlock = new TextBlock();
                categoryTxtBlock.Text = category;
                //set the category image and its properties - margin, width, height, name, background, font size
                Image categoryImage = new Image();
                categoryImage.Margin = new Thickness(-50, 15, 0, 0);
                categoryImage.Width = 50;
                categoryImage.Height = 50;
                if (category == "Priority")
                {
                    categoryImage.Source = new BitmapImage(new Uri("/AlarmClock;component/Images/exclamination_mark.png", UriKind.Relative));
                }
                else
                    if (category == "Favourite")
                    {
                        categoryImage.Source = new BitmapImage(new Uri("/AlarmClock;component/Images/star_full.png", UriKind.Relative));
                    }

                Grid.SetColumn(categoryImage, 2);
                schedule.Children.Add(categoryImage);
            }
            scheduleListBox.Items.Add(schedule);
        }
    }

    private void scheduleListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        //Get the value of selected index in scheduleListBox
        int selectedIndexOfSchedule = scheduleListBox.SelectedIndex;
        NavigationService.Navigate(new Uri("/ViewScheduleDetails.xaml?selectedIndexOfSchedule=" + selectedIndexOfSchedule + "&selectedFolderName1=" + selectedFolderName1, UriKind.Relative));
    }

windows phone 7中的列表框项

取消选择项目?

myListBox.SelectedItem = -1;

选择一个项目后,只需删除所选内容。

    private void scheduleListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        //Get the value of selected index in scheduleListBox
        int selectedIndexOfSchedule = scheduleListBox.SelectedIndex;
        // RESET THE SELECTED INDEX/ITEM
        scheduleListBox.SelectedIndex = -1;
        // OR
        scheduleListBox.SelectedItem = null;
        NavigationService.Navigate(new Uri("/ViewScheduleDetails.xaml?selectedIndexOfSchedule=" + selectedIndexOfSchedule + "&selectedFolderName1=" + selectedFolderName1, UriKind.Relative));
    }