繁体   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