我创建了一个连接SDF数据库的应用程序。向用户提供电影中的电影列表。用户可以选择电影并按“确定”按钮。
然后应该向用户呈现另一个包含该电影的所有信息的数据网格。
我尝试在两个页面之间传递SelectedIndex,它将SelectedIndex发送到信息页面,但它不会将它分配给相同的SelectedIndex。
public Desc(int input_id)
{
InitializeComponent();
cinemaEntities = new cinema1.cinemaDBEntities();
movieViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("moviesViewSource")));
System.Data.Objects.ObjectQuery<cinema1.movie> moviesQuery = this.GetMovieQuery(cinemaEntities);
movieViewSource.Source = moviesQuery.Execute(System.Data.Objects.MergeOption.OverwriteChanges);
moviesListView.SelectedIndex = id;
答案 0 :(得分:0)
该怎么做取决于软件的用途,但无论如何,我建议您花一点时间在软件架构上。如果您想使用WPF,您应该决定是否采用MVVM(Model-View-ViewModel)方法,该方法具有高度可维护性且具有众多优势,但需要一些时间来熟悉。对于小型或简单的应用程序来说,快速解决方案非常适用于在视图和控件的代码隐藏中编写GUI逻辑。
无论如何,我会创建一个模型层,它根据类型镜像你的数据库数据(MovieDatabase有一个电影集合等等)。然后编写一个适配器来填充数据库中的模型。然后在视图中使用模型 - 如果你想快速完成 - 或者将ViewModels写入模型(更好)并在视图中使用它们。
这就是说,从你发布的代码很难说,问题是什么。你有更多的背景吗?你为什么不传递SelectedItem?
答案 1 :(得分:0)
为什么不将Movie对象传递给第二页?然后使用.SelectedItem。如果只有一部电影的详细信息,为什么第二页需要整个列表?