Windows phone 7 - 在 GridView 中重复显示重复的列
Posted
技术标签:
【中文标题】Windows phone 7 - 在 GridView 中重复显示重复的列【英文标题】:Windows phone 7 - Displaying duplicate columns repeatedly in 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 列,而不管它已经有多少列。 【参考方案1】:Loaded
事件在所有页面组件被加载时一直引发,即使当您从另一个页面返回时也是如此。例如,您需要在构造函数中加载元素。
【讨论】:
我也将该代码放入构造函数中并尝试过,但仍然遇到同样的问题。它仍然附加了那么多列,即使我试图通过检查gridview的列数来删除列运行时间,但它部分工作,因为它只删除保留列标题的附加列的列数据......以上是关于Windows phone 7 - 在 GridView 中重复显示重复的列的主要内容,如果未能解决你的问题,请参考以下文章
Windows Phone 应用程序仅适用于 Windows Phone 7?