簡體   English   中英

如何在WPF中的頁面之間傳遞來自數據庫的值?

[英]How do I pass values from a database between pages in 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;

做什么取決於軟件的目的,但是無論如何我都建議您花更多的精力在軟件的體系結構上。 當您要使用WPF時,應該決定是否要使用MVVM(模型-視圖-視圖模型)方法,該方法具有高度可維護性並且具有許多優點,但是需要一些時間來熟悉。 對於小型或簡單應用而言,絕對合適的快速解決方案是在視圖和控件的背后代碼中編寫GUI邏輯。

無論如何,我將創建一個模型層,該模型層根據類型(MovieDatabase具有電影收藏集等)來鏡像數據庫數據。 然后編寫一個適配器來填充數據庫中的模型,然后在視圖中使用該模型-如果要快速進行操作-或將ViewModels寫入模型(更好)並在視圖中使用它們。

話雖這么說,但從您發布的代碼中很難看出問題所在。 您還有更多背景嗎? 為什么不通過SelectedItem?

為什么不將Movie對象傳遞給第二頁呢? 然后使用.SelectedItem。 如果僅是一部電影的詳細信息,那么為什么第二頁仍需要整個列表?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM