如何在 WPF 中的页面之间从数据库传递值

本文关键字:之间 数据库 WPF | 更新日期: 2023-09-27 18:33:03

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

如何在 WPF 中的页面之间从数据库传递值

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

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

话虽如此,从您发布的代码中很难说出问题所在。你有更多的背景吗?你为什么不通过选定项?

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