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

时间:2012-05-02 21:29:40

标签: c# wpf

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

2 个答案:

答案 0 :(得分:0)

该怎么做取决于软件的用途,但无论如何,我建议您花一点时间在软件架构上。如果您想使用WPF,您应该决定是否采用MVVM(Model-View-ViewModel)方法,该方法具有高度可维护性且具有众多优势,但需要一些时间来熟悉。对于小型或简单的应用程序来说,快速解决方案非常适用于在视图和控件的代码隐藏中编写GUI逻辑。

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

这就是说,从你发布的代码很难说,问题是什么。你有更多的背景吗?你为什么不传递SelectedItem?

答案 1 :(得分:0)

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