[英]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.