C# ContentFrame.Navigate适用于导航项,但不适用于AutoSuggestBox

C# ContentFrame.Navigate适用于导航项,但不适用于AutoSuggestBox,c#,windows,uwp,uwp-xaml,C#,Windows,Uwp,Uwp Xaml,我有一个带有导航视图的UWP应用程序。我一直在参考这篇文档,除了更深入地使用AutoSuggestBox之外,它提供了所有方面的工作示例 我尝试的是在提交的QuerySubmitted上更新MainPage NavigationView的ContentFrame,我尝试使用ContentFrame进行更新。然而,Navigate的结果是ContentFrame完全为空。我很困惑,因为没有太多关于AutoSuggestBox的相关信息 我当前的代码如下所示: private async void

我有一个带有导航视图的UWP应用程序。我一直在参考这篇文档,除了更深入地使用AutoSuggestBox之外,它提供了所有方面的工作示例

我尝试的是在提交的QuerySubmitted上更新MainPage NavigationView的ContentFrame,我尝试使用ContentFrame进行更新。然而,Navigate的结果是ContentFrame完全为空。我很困惑,因为没有太多关于AutoSuggestBox的相关信息

我当前的代码如下所示:

private async void AutoSuggestBox_QuerySubmittedAsync(AutoSuggestBox sender, AutoSuggestBoxQuerySubmittedEventArgs args)
{
    searchResultsClass.searchQuery = suggestBox.Text;
    Debug.WriteLine(searchResultsClass.searchQuery);
    await searchResultsClass.SearchAsync();
    this.ContentFrame.Navigate(typeof(SearchResults));
}
SearchResults.xaml,它与我的其他工作视图相同:

<Page
    x:Class="TestApp.Views.SearchResults"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:TestApp.Views"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <GridViewHeaderItem Content="Search results for ''" FontSize="36"/>
    </Grid>
</Page>

我方无法再现您的问题
ContentFrame.Navigate
可以很好地处理事件句柄。在XAML中,
AutoSuggestBox
如下所示:

<NavigationView.AutoSuggestBox>
    <AutoSuggestBox x:Name="ASB" QueryIcon="Find" QuerySubmitted="ASB_QuerySubmitted"/>
</NavigationView.AutoSuggestBox>
默认情况下,每个导航都会为请求的特定页面(或子类)创建一个新实例,并处理上一个页面实例。详情请参考课堂。因此,在代码片段的
MainPage
中创建一个实例
SearchResults
,可能毫无意义,也不会对显示的导航
SearchResults
页面产生影响


如果您想将
自动建议框的文本传递到另一个页面,您应该通过导航方法

无法在我这边重现您的问题
ContentFrame.Navigate
可以很好地处理事件句柄。在XAML中,
AutoSuggestBox
如下所示:

<NavigationView.AutoSuggestBox>
    <AutoSuggestBox x:Name="ASB" QueryIcon="Find" QuerySubmitted="ASB_QuerySubmitted"/>
</NavigationView.AutoSuggestBox>
默认情况下,每个导航都会为请求的特定页面(或子类)创建一个新实例,并处理上一个页面实例。详情请参考课堂。因此,在代码片段的
MainPage
中创建一个实例
SearchResults
,可能毫无意义,也不会对显示的导航
SearchResults
页面产生影响


如果您想将
自动建议框的文本传递到另一个页面,您应该通过导航方法

好的,谢谢,我添加了一个断点,看起来很顺利,仍然没有做任何事情。我创建了一个新项目来重现这个问题,并对其进行了精简,以尝试消除任何可能产生的问题,但仍然是相同的问题。这里有一个链接到说的最小项目,我可能错过了一些非常明显的东西,对不起,互联网花了很长时间才将项目上传到谷歌硬盘。在我被编辑时间打断之前,继续最后一句话,我可能错过了一些非常明显的东西,如果错过了,请道歉。@Mtngoats by testing说到原因,请检查更新的答案。好的,谢谢,我添加了一个断点,似乎过得很好,仍然没有做任何事情。我创建了一个新项目来重现这个问题,并对其进行了精简,以尝试消除任何可能产生的问题,但仍然是相同的问题。这里有一个链接到说的最小项目,我可能错过了一些非常明显的东西,对不起,互联网花了很长时间才将项目上传到谷歌硬盘。在我被编辑时间打断之前,继续最后一句话,我可能错过了一些非常明显的东西,如果错过了,请道歉。@Mtngoats by testing说到原因,请检查更新的答案。