2017-11-07 13 views
1

NavigationViewを使用したUWPアプリケーションがあります。私はAutoSuggestBoxのもっと深い使い方を除いて、すべてのサンプルを扱っているこのドキュメントを参照しています。 https://docs.microsoft.com/en-us/windows/uwp/controls-and-patterns/navigationviewContentFrame.Navigateはナビゲーション項目で機能しますが、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> 

答えて

0

が私の側にあなたの問題を再現することはできません。 ContentFrame.Navigateは、QuerySubmittedイベントハンドルでうまく動作します。 XAMLで次のようにAutoSuggestBoxは次のとおりです。

<NavigationView.AutoSuggestBox> 
    <AutoSuggestBox x:Name="ASB" QueryIcon="Find" QuerySubmitted="ASB_QuerySubmitted"/> 
</NavigationView.AutoSuggestBox> 

そして結果:

enter image description here

this.ContentFrame.Navigate(typeof(SearchResults));コード行にブレークポイントを追加し、それかどうかを確認するために、プロジェクトをデバッグしました:このステップに成功することができます。 問題が解決しない場合は、最小限の再現プロジェクトをアップロードしてください。

があなたのプロジェクトをテストするための

を更新し、問題がSearchResultsページがコンストラクタメソッドで不足しているということになります。例:

public SearchResults() 
{ 
    this.InitializeComponent(); 
} 
public async Task SearchAsync() 
{ 
    ... 
} 

デフォルトでは、各ナビゲーションは、要求された特定のページ(またはサブクラス)の新しいインスタンスを作成し、前のページインスタンスを破棄します。詳細はPageクラスを参照してください。そのため、コードスニペットのMainPageにあるSearchResultsインスタンスを作成することは意味をなさない可能性があり、表示された移動済みのSearchResultsページに影響を与えません。

AutoSuggestBoxのテキストを別のページに渡す場合は、ナビゲート方法でPass information between pagesにする必要があります。

+0

申し訳ありませんが、私はブレークポイントを追加しました、うまくいっているようですが、まだ何もしませんでした。私は問題を再現するための新しいプロジェクトを作成し、それをやっている可能性のあるものを取り除くためにそれをスリム化しましたが、同じ問題です。ここでは、最小限のプロジェクトにリンクしている、私はおそらく何か信じられないほど明白な逃した、 – Mtngoats

+0

申し訳ありません、インターネットはGoogleドライブにプロジェクトをアップロードする年月を要した。 [リンクはこちらです。](https://drive.google.com/file/d/1BihjN8PVnJXzxO86YG30BA556nZLWQKx/view?usp=sharing)私が編集時間で中断される前の最後の文章を続けると、私はおそらく、私が持っているなら、謝罪してください。 – Mtngoats

+0

@Mngngoatsがテストしたのは、その理由があるので、更新された答えを確認してください。 –

関連する問題