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?

Flurry 分析在 Windows Phone 7 中崩溃

Windows Phone 7 - 在列表框中切换开关

Windows Phone 7 推送通知

Windows Phone 7:打造音乐闹钟?

Windows Phone 7.1 设置