簡體   English   中英

丟棄 WPF 頁面以顯示具有不同數據的該頁面的新版本的最佳方法是什么?

[英]What is the best way to discard of a WPF page in order to display a new version of that page with different data?

在我的程序中,導航是沿着 Project->Board->Issue 的路徑構建的,然后您可以向上導航以選擇不同的板。 它在可以從中挑選的列表中顯示問題。 麻煩的是,如果您導航到不同的板,然后從那里顯示的問題中選擇不同的問題,它仍然會顯示您選擇的第一個問題。

我認為最好的解決方案是在我返回時處理問題詳細信息頁面,但我不確定如何執行此操作。

從董事會導航到問題

private void BtnSelect_Click(object sender, RoutedEventArgs e)
{
    var loginWindow = Window.GetWindow(this) as MainWindow;
    if (selectedBoard != null)
    {
        PageIssueSelect p = null;
        p = new PageIssueSelect(project, selectedBoard);
        loginWindow.Navigate(p);
    }
}

從問題列表導航回董事會:

private void BtnBack_Click(object sender, RoutedEventArgs e)
{
    items.Clear();
    lbxIssues.ItemsSource = null;
    project = null;
    var mainWindow = Window.GetWindow(this) as MainWindow;
    mainWindow.pageHolder.GoBack();
}

從問題列表導航到一個問題:

private void LbxIssues_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
    ListBox box = (ListBox)sender;
    var loginWindow = Window.GetWindow(this) as MainWindow;
    Issue issue = project.Issues[box.SelectedIndex];
    pageIssueDetail p = null;
    p = new pageIssueDetail(issue, project.name);
    loginWindow.Navigate(p);
}

從一個問題導航回到問題列表

{
    issue = null;
    var loginWindow = Window.GetWindow(this) as MainWindow;
    loginWindow.pageHolder.GoBack();
}

據我所知,沒有理由總是顯示相同的問題,因為每次向前導航時,它都會創建一個選擇新問題的新頁面。

其中一些不必要的代碼行來自我試圖為這個問題創建某種解決方案。

問題在於正在獲取的數據,而不是頁面。 我正在使用

item = wholeList[index];

當我應該使用

item = filteredList[index];

只是回答以防萬一這對其他人有幫助。

暫無
暫無

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

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