Windows phone 7 - Повторное отображение повторяющихся столбцов в GridView - PullRequest
0 голосов
/ 29 февраля 2012

Я использую элемент управления GridView в WP7 для отображения записей из изолированного хранилища. Я показываю эти записи при загрузке страницы события страницы. GridViewPage изначально имеет 4 столбца но когда я возвращаюсь в GridViewPage, посещая другую страницу, gridview показаны повторяющиеся столбцы (на этот раз 8 столбцов).

В следующий раз я снова вернусь к GridViewPage, он показывает 12 столбцов, но я не вижу никаких изменений на соответствующей странице XAML.

Но прежде чем присваивать значение ItemSource объекта gridView, я сохраняю записи из isostore в один вариант IList, внося некоторые изменения и назначая эту переменную IList для ItemSource объекта GridView.

private void GridViewPage_load (отправитель объекта, RoutedEventArgs r) { System.Windows.Threading.DispatcherTimer dt = new System.Windows.Threading.DispatcherTimer (); dt.Interval = новый интервал времени (0, 0, 0, 1,0); // 1 секунда dt.Tick + = новый EventHandler (dt_Tick); dt.Start (); }

void dt_Tick (отправитель объекта, EventArgs e) { IList rawList = DBHelperMeeting.GetData (); int count = rawList.Count; для (int i = 0; i

            string startDate = Convert.ToDateTime(rawList.ElementAt(i).Date.ToString()).ToShortDateString();
            startDate+=" "+rawList.ElementAt(i).Start_Time;


            if ((bool)rawList.ElementAt(i).Flag == true)
            {
                TimeSpan st = Convert.ToDateTime(startDate) - DateTime.Now;
                //MessageBox.Show(st.ToString());
                TimeSpan et = Convert.ToDateTime(endDate) - DateTime.Now;
                //MessageBox.Show(et.ToString());
                if (st.Seconds < 0)
                {
                    if (et.Seconds < 0)
                    {
                        rawList.ElementAt(i).Flag = false;
                        rawList.ElementAt(i).Rem_Time = "Meeting Finished";
                    }
                    else
                    {
                        rawList.ElementAt(i).Rem_Time = "Meeting Started";
                    }
                }
                else if (st.Minutes > 0 && ((st.Hours * 60) + (st.Minutes)) < 16)
                {
                    rawList.ElementAt(i).Rem_Time = st.Minutes.ToString() + " Min.";
                }

            }
        }
        GridView1.ItemsSource = rawList;
      }

На самом деле я хочу обновить поле Rem_Time каждой записи (т.е. встречи) в соответствии со временем (Rem_Time показывает оставшееся время для встречи)

1 Ответ

0 голосов
/ 29 февраля 2012
Событие

Loaded возникает все время, когда загружены все компоненты страницы, даже когда вы возвращаетесь с другой страницы. Вам нужно загрузить элементы в конструктор, например.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...