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