0

我正在使用 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 行上。

解决方案是什么?

4

1 回答 1

1

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

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

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

然后在 tempData 处插入一个断点来检查你是否得到了预期的数据。

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

于 2012-06-14T10:17:32.247 回答