我在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(object sender,EventArgs e) { IList rawList = DBHelperMeeting.GetData(); int count = rawList.Count; for(int i = 0; i< count; i ++) { / *在以下行中我写了逻辑来获取日期和start_time 表记录存储在IList variable-rawList中并形成DateTime 变量 * / string endDate = Convert.ToDateTime(rawList.ElementAt(i).Date.ToString())。ToShortDateString(); endDate + =“”+ rawList.ElementAt(i).End_Time;
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显示会议的剩余时间)
答案 0 :(得分:0)
Loaded
事件。例如,您需要在构造函数中加载元素。