SelectedItem必须始终设置为有效值。 Windows Phone本地数据库

时间:2012-06-13 18:56:49

标签: windows-phone-7

我正在使用Microsoft创建的本地数据库示例。

我可以将项目添加到列表中,然后删除它们。但我现在想要选择项目并获取项目的文本并在下一页中使用它。

这是选择更改的事件:

 private void allToDoItemsListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {

        NavigationService.Navigate(new Uri("/LiveTimes.xaml?selectedItem=" + allToDoItemsListBox.SelectedIndex, UriKind.Relative));

    //    string urlWIthData = string.Format("/LiveTimes.xaml?name={0}", " ");
    //    this.NavigationService.Navigate(new Uri(urlWIthData, UriKind.Relative));

    }

然后这是另一页上的页面加载。

 string selectedIndex = "";
       if (NavigationContext.QueryString.TryGetValue("selectedItem", out selectedIndex))
       {
           int index = int.Parse(selectedIndex);
           DataContext = App.ViewModel.HomeToDoItems[index];

       }

然后当我使用它时,错误发生在DataContext行上。

解决方案是什么?

1 个答案:

答案 0 :(得分:1)

您显示的上述代码没有问题,实际问题可能与您定义ViewModel和HomeToDoItems的方式有关。如果您可以显示一些代码,它可以帮助我们解决您的问题。

在将数据设置为DataContext之前,请尝试以下步骤: 首先,确保您获得有效的selectedIndex。

var tempData = App.ViewModel.HomeToDoItems[index];
DataContext = tempData;

然后在tempData处插入一个断点以检查您是否获得了预期的数据。

这个答案可能无法解决您的问题,但可以指导您确定实际问题。