0

我创建了一个连接到 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;
4

2 回答 2

0

为什么不直接将 Movie 对象传递到第二页?然后使用 .SelectedItem。如果只是一部电影的详细信息,为什么第二页仍然需要整个列表?

于 2012-05-02T22:55:59.197 回答
0

做什么取决于软件的目的,但无论如何我建议在你的软件架构上多花一点力气。当您想使用 WPF 时,您应该决定是否采用 MVVM(模型-视图-视图模型)方法,该方法具有高度可维护性且具有许多优点,但需要一些时间来熟悉。对于小型或简单的应用程序来说绝对没问题的快速解决方案是在视图和控件的代码隐藏中编写您的 GUI 逻辑。

无论如何,我会创建一个模型层,以根据类型镜像您的数据库数据(MovieDatabase 有一个电影集合等)。然后编写一个适配器来填充数据库中的模型。然后在您的视图中使用模型 - 如果您想快速完成 - 或者将 ViewModels 写入您的模型(更好)并在您的视图中使用它们。

话虽这么说,从您发布的代码很难看出问题所在。你有更多的上下文吗?为什么不通过 SelectedItem?

于 2012-05-02T22:02:37.120 回答