1

ストアアプリで検索コントラクトを理解して機能させるのに問題があります。契約の使用構造を説明するドキュメントやガイドを見つけることができませんでした。(MSDNのクイックスタート、検索コントラクトのサンプル、ビルドビデオを見てきましたが、実際にはjavascriptのみを扱っています)

これまでのところ、クエリを実行して(カスタムオブジェクトの)リストを検索コントラクトページに取得し、そこからdefaultviewmodel.resultsに割り当てようとしていますが、どのクエリを入力しても何も表示されません。ページ上。他に設定する必要があるものはありますか?私がこれまでに持っているのは次のとおりです(抜粋):

App.xaml.cs

protected override void OnSearchActivated(Windows.ApplicationModel.Activation.SearchActivatedEventArgs args)
        {
            SearchCharmResultsPage.Activate(args.QueryText, args.PreviousExecutionState);
            SearchCharmResultsPage.ProcessSearchQuery(args.QueryText);
        }    


public async static void ProcessSearchQuery(string queryString)
        {
            try
            {
                StorageFile file = await ApplicationData.Current.LocalFolder.GetFileAsync("recipeCustomObject                  Debug.WriteLine("Database exists, connecting");
                SQLiteAsyncConnection connection = new SQLiteAsyncConnection("CustomObject_db");
                List<CustomObject> resultsList = new List<CustomObject>();
                string query = "SELECT * FROM CustomObjectDB";
                resultsList =  await connection.QueryAsync<RecipeRecord>(query);  
            }
            catch (FileNotFoundException fnfExc)
            {
                Debug.WriteLine("FNFEXC: " + fnfExc.ToString());
            }
        }

問題があるかどうか、またはどのように変更するかはわかりませんが、ここに問題がある可能性があると思います。resultListリストはここに作成されますが、メソッドが非同期であるため、メソッドから戻ることができません。このため、LoadStateMethodで割り当てようとするとthis.DefaultViewModel[Results] = resultsList;、オブジェクトは存在しないと思います(プログラムはエラーをスローしないと考えられます)。メソッドに同じ行を追加しようとすると、静的メソッドでは無効であるProcessSearchQueryと言われthisますが、メソッドを静的にする必要があると思いますか?私の問題は基本的な論理エラーかもしれませんか?

4

3 に答える 3

3

ついに手に入れた!ここで解決策を見つけました:http://jeffblankenburg.com/2012/11/06/31-days-of-windows-8-day-6-search-contract

将来的に答えを探している人にとって重要なのは、Filter_SelectionChangedメソッド内に検索ロジックがあることを確認することです。これは私が行っていなかったことです。構造のアイデアを得るために上記のリンク内のガイドを見てください。

于 2012-11-06T22:56:43.910 に答える
2

開発者センターで検索契約のサンプルを見ましたか?C#/XAMLバージョンもあります。

于 2012-11-02T12:49:18.813 に答える
0

私のオープンソースのWin8RSSリーダーフレームワークは検索(および共有)を実装しています。ソースを確認してください。それでも質問がある場合は、http: //win8rssreader.codeplex.com/をサポートさせていただきます。

于 2012-11-02T13:25:38.320 に答える