【发布时间】: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 列,而不管它已经有多少列。