我正在使用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行上。
解决方案是什么?
答案 0 :(得分:1)
您显示的上述代码没有问题,实际问题可能与您定义ViewModel和HomeToDoItems的方式有关。如果您可以显示一些代码,它可以帮助我们解决您的问题。
在将数据设置为DataContext之前,请尝试以下步骤: 首先,确保您获得有效的selectedIndex。
var tempData = App.ViewModel.HomeToDoItems[index];
DataContext = tempData;
然后在tempData处插入一个断点以检查您是否获得了预期的数据。
这个答案可能无法解决您的问题,但可以指导您确定实际问题。