我有一个包含3个列表的数据透视页面。我将可观察的集合绑定到每个集合。我在PhoneApplicationPage_Loaded中有GetHabitats()函数
问题是当使用此代码转到详细信息页面时:
ObservableCollection<HabitatDB> _habitatEntries = null;
private void GetHabitats()
{
string strSelect = "SELECT id, name FROM alicebw_habitat ORDER BY id ASC";
_habitatEntries = (Application.Current as App).db.SelectObservableCollection<HabitatDB>(strSelect);
HabitatListBox.ItemsSource = _habitatEntries;
}
private void HabitatListBox_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
{
HabitatDB data = (sender as ListBox).SelectedItem as HabitatDB;
int habitatid = data.id;
NavigationService.Navigate(new Uri("/BirdHabitat.xaml?habitatid=" + habitatid, UriKind.Relative));
}
页面工作正常但是当我按BACK时,我在int habitatid = data.id中有一个关于null异常的错误。
但是,当GetHabitats();
放在InitializeComponent();
后,一切正常,但页面加载的时间很长。它在Loaded事件上的外观和工作效果要好得多,所以如何修复它才能保持这种状态呢?