我有一个剧院列表,并从我的应用程序中创建了一个辅助磁贴以直接导航到特定剧院。我在查询字符串中传递了剧院的 ID:
我从文件“MainViewModel.cs”中的 WCF 服务加载剧院
在我的主页中,我有一个剧院列表,我可以导航到详细信息页面。
但是当我想从磁贴导航时,出现错误...
瓷砖:
ShellTile.Create(new Uri("/TheaterDetails.xaml?selectedItem=" + theater.idTheater, UriKind.Relative), tile, false);
我的剧院详情页面:
public partial class TheaterDetails : PhoneApplicationPage
{
theater theater = new theater();
public TheaterDetails()
{
InitializeComponent();
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (!App.ViewModel.IsDataLoaded)
{
App.ViewModel.LoadData();
}
if (DataContext == null)
{
string selectedIndex = "";
if (NavigationContext.QueryString.TryGetValue("selectedItem", out selectedIndex))
{
int index = int.Parse(selectedIndex);
theater = (from t in App.ViewModel.Theaters
where t.idTheater == index
select t).SingleOrDefault();
DataContext = theater;
....
....
....
错误 :
https://dl.dropboxusercontent.com/u/9197067/error.png
就像没有加载数据一样......
你知道问题出在哪里吗?
解决方案可能很简单,但我是初学者......也许是因为我异步加载数据并且应用程序不会等到它完成......
谢谢
编辑 :
我的 LoadData() 方法:
public void LoadData()
{
client.GetTheatersCompleted += new EventHandler<ServiceReference1.GetTheatersCompletedEventArgs>(client_GetTheatersCompleted);
client.GetTheatersAsync();
// Other get methods...
this.IsDataLoaded = true;
}
private void client_GetTheatersCompleted(object sender, ServiceReference1.GetTheatersCompletedEventArgs e)
{
Theaters = e.Result;
}