【问题标题】:Windows phone 7 - Displaying duplicate columns repeatedly in GridViewWindows phone 7 - 在 GridView 中重复显示重复的列
【发布时间】:2012-03-18 22:24:36
【问题描述】:

我在 WP7 中使用 GridView 控件来显示来自隔离存储的记录。我正在展示这些 在页面的页面加载事件中记录。 GridViewPage 最初有 4 列 但是当我回到 GridViewPage 访问其他页面时,gridview 显示重复的列(这次是 8 列)。

下一次我回到 GridViewPage 它显示 12 列, 但我在相应的 XAML 页面中看不到任何更改。

但是在将值分配给 gridView 的 ItemSource 之前的一件事是,我将 isostore 中的记录存储到一个 IList 变量中,进行一些更改并将该 IList 变量分配给 GridView 的 ItemSource。

private void GridViewPage_load(object sender, RoutedEventArgs r) { System.Windows.Threading.DispatcherTimer dt = new System.Windows.Threading.DispatcherTimer(); dt.Interval = new TimeSpan(0, 0, 0, 1,0); // 1 秒 dt.Tick += new EventHandler(dt_Tick); dt.Start(); }

void dt_Tick(对象发送者,EventArgs e) { IList rawList = DBHelperMeeting.GetData(); int count = rawList.Count; for (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显示会议的剩余时间)

【问题讨论】:

  • 显示你的代码,不要描述它。它将帮助我们指出每次加载页面时如何在网格中再添加 4 列,而不管它已经有多少列。

标签: windows-phone-7 gridview


【解决方案1】:

Loaded 事件在所有页面组件被加载时一直引发,即使当您从另一个页面返回时也是如此。例如,您需要在构造函数中加载元素。

【讨论】:

  • 我也将该代码放入构造函数中并尝试过,但仍然遇到同样的问题。它仍然附加了那么多列,即使我试图通过检查gridview的列数来删除列运行时间,但它部分工作,因为它只删除保留列标题的附加列的列数据......
猜你喜欢
  • 1970-01-01
  • 2011-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-24
相关资源
最近更新 更多