开发者

List box item in windows phone 7

I am trying to navigate between 2 pages.

For view page there is a list box which i select an item inside it will navigate to "deatils page".

When i press on the back key button of the phone it navigate me from "details page" back to "view page".

But the list box in "view page" is showing the selected item as highlighted.

How can i refresh the "view page" such that the list box will not show anything has been selected.

Code for my key back button of the phone "details page":

private void PhoneApplicationPage_BackKeyPress(object sender,
                                               System.ComponentModel.CancelEventArgs e)
{

    string selectedFolderName = selectedFolderName2;

    NavigationService.Navigate(
        new Uri(
            "/DisplaySchedule.xaml?=selectedFolderName2" + selectedFolderName,
            UriKind.Relative));
}

Code for my navigated page "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(obje开发者_运维问答ct 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));
    }


simply unselect a item?

myListBox.SelectedItem = -1;


After selecting an item simply remove the selection. (See comments below in CAPS)

    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));
    }
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜