1

私は Windows Phone と C# を初めて使用し、Objective-C と Java からの変更を楽しんでいます。

あるクラスから別のクラスにオブジェクトを渡す方法が見つかりません。MSDN でサンプル コードを見つけましたが、必要なものには当てはまらないのではないかと思います。

    private void meetingList_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if (meetingList.SelectedIndex != -1)
        {
            Meeting aMeeting = (Meeting)meetingList.SelectedItem;
            this.NavigationService.Navigate(new Uri("/MeetDetails.xaml", UriKind.Relative));
            ApplicationBar.IsVisible = true;
        }
    }

ミーティング オブジェクト 'aMeeting' を MeetDetails クラスに渡して、すべての詳細をユーザーに表示するにはどうすればよいですか。

私はそれを分解し、次のようなものを使用して「aMeeting」からすべての変数を渡すことができることを知っています:

this.NavigationService.Navigate(new Uri("/MeetDetails.xaml?Meeting=" +
            aMeeting.meetName + "&TheDate=" +
            aMeeting.meetDate, UriKind.Relative));

見逃したものはありますか?皆さんがお勧めする別の方法はありますか?

どうもありがとう、 - コード

4

3 に答える 3

2

あなたが投稿したものは、その場所に関する簡単なデータを転送する良い方法です. ただし、ページ間で複雑なオブジェクトを渡す必要がある場合は面倒です。

推奨される方法は、MVVM パターン ( wikipediaおよびMSDNから) を使用することです。これにより、データバインディングを利用してビューを他のすべてから分離する方法が得られます。私が見た最高のチュートリアルは、MSDN のビデオを見ることです。

于 2012-04-18T09:21:53.443 に答える
0
         var t1 = App.Current as App;
         t1.SSIDToken = stData1SSID;
         t1.CSRFToken = stData1CSRF;

これは本当にうまく機能します.app.csファイルで必要なメンバーを作成するだけです(ここでは:

公開文字列 SSIDToken {get; set;} public string CSRFToken {get;} 設定;}

次に、トップ コードを作成して、一時バッファとして機能する var を作成します。値を戻したい場合は、同じコードを使用します。

     var t1 = App.Current as App;
     thisisatextbox.Text = t1.SSIDToken;
     thisisalsoatextbox.Text = t1.CSRFToken;

詳細情報; http://www.eugenedotnet.com/2011/07/passing-values-between-windows-phone-7-pages-current-context-of-application/

編集:数か月の経験の後、追加できることに気づきました

public static new App Current
{
    get { return Application.Current as App; }
}

App.xaml (パブリック クラス App) で、毎回宣言することなく App.Current を呼び出すことができます。

App.Current.CSRFToken = "" || を使用できるようになりました。文字列 CSRFTk = App.Current.CSRFToken;

于 2012-04-19T12:34:21.377 に答える
0

現在の会議オブジェクトを格納できるプロパティを持つマネージャー クラスを検討することをお勧めします。これは、SelectionChanged イベント ハンドラーで設定され、MeetDetails ページでアクセスされます。manager クラスは、すべてのページからアクセスできるように、ページの外部で定義されます。

于 2012-04-18T09:21:03.797 に答える