0

以下のプログラムは、ピッカーからメートルとセンチメートルを選択し、メートルが 53 で cm が 4 の場合、結果は 53.4 のように連結されます。私がやりたいことは、最終的な出力の高さ (例: 53.4)、年齢、性別に Page1.xaml (次のページ) からアクセスする必要があることです。式に実装する必要があるこの種の値がたくさんあります。Windows Phone の IsolatedStorage を介してこれらの値を次のページに転送する方法を教えてください。ありがとうございました。

//Selecting height
     private void MHSelect_Click(object sender, RoutedEventArgs e)
                {            
                    int mhvalue1 = MHMeterSelector.SelectedItem;
                    int mhvalue2 = MHCentimeterSelector.SelectedItem;
                    if(mhvalue1 == 0)
                    {
                        mhvalue1 = MHMeterSelector.DefaultValue;
                    }        
                    MHeight_btn.Content = float.Parse(string.Format("{0}.{1}", mhvalue1.ToString(), mhvalue2.ToString())) + " cm";               
      //height is selected and concatenated here. mhvalue1 and mhvalue2 are the metre and centimetre values.                  
                }

   //Selecting Age 
     private void MASelect_Click(object sender, RoutedEventArgs e)
            {               
                int mavalue1 = MAMeterSelector.SelectedItem;
                if(mavalue1 == 0)
                {
                    mavalue1 = MAMeterSelector.DefaultValue;
                }
                MAge_btn.Content = mavalue1;
    //Age is selected and mavalue1 is the selected age.            
            }

    //Selecting Gender
     private void MGenderListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
            {
                ListBoxItem kbi = ((sender as ListBox).SelectedItem as ListBoxItem);
                MGender_btn.Content = kbi.Content.ToString();               
    //kbi is selected and kbi.Content should be transfered to next page
            }
4

4 に答える 4

1

IsolatedStorage を使用してデータを転送する必要がある理由がわかりません。あるページから別のページに一部のデータのみを転送したい場合は、Application.Current.Resources.Add() を使用できます。

たとえば、Page1 と Page2 を含む 2 つのページがあるとします。Page1 から Page2 に整数を送信します。したがって、コードは次のようになります。

ページ1

int sendInteger=0;
Application.Current.Resources.Clear();
Application.Current.Resources.Add("send",sendThis);

ページ2

int receiveInteger;  // receive the integer
object obj = Application.Current.Resources["send"];
receiveInteger =(int)obj;

この方法を使用すると、あるページから別のページにのみデータを転送できます。私はあなたのデータをどのファイルにも保存しません。

于 2013-09-02T07:34:44.560 に答える
0

私はしばしば ClsController と呼ばれる変数を格納するクラスを作成します。どこでもアクセスするには、次の手順を実行します。

App.xaml.cs にこれを追加します。

private static ClsController controlerLink = null;

    public static ClsController ControlerLink
    {
        get
        {
            if (controlerLink == null)
            {
                controlerLink = new ClsController();
            }
            return controlerLink;
        }
    }

クラスにアクセスする場合は、クラスの先頭に次のように記述します。

ClsController controlerLink = App.ControlerLink;
string myData = controlerlink.name;

またはメソッドを呼び出す

controlerLink.MyMethod();
于 2013-09-03T13:21:21.667 に答える
0

パラメータを渡すメソッド

1.クエリ文字列の使用

クエリ文字列を介してパラメーターを渡すことができます。このメソッドを使用すると、データを文字列に変換して URL エンコードする必要があります。これは、単純なデータを渡すためにのみ使用してください。

ページの移動:

page.NavigationService.Navigate(new Uri("/Views/Page.xaml?parameter=test",UriKind.Relative));

宛先ページ:

string parameter = string.Empty;
if (NavigationContext.QueryString.TryGetValue("parameter", out parameter)) {
{
this.label.Text= parameter;
}



2.NavigationEventArgs の使用

ページの移動:

page.NavigationService.Navigate(new Uri("/Views/Page.xaml?parameter=test",UriKind.Relative));

// と ..

protected override void OnNavigatedFrom(NavigationEventArgs e)
{
// NavigationEventArgs returns destination page
Page destinationPage = e.Content as Page;
if (destinationPage != null) 
{

    // Change property of destination page
    destinationPage.PublicProperty = "String or object..";

宛先ページ:

// Just use the value of "PublicProperty"..



3.マニュアルナビの使い方

ページの移動:

page.NavigationService.Navigate(new Page("passing a string to the constructor"));

宛先ページ:

public Page(string value) {// Use the value in the constructor...}

Uri と手動ナビゲーションの違い ここでの主な違いは、アプリケーションのライフサイクルだと思います。手動で作成されたページは、ナビゲーションのためにメモリに保持されます。詳しくはこちらをご覧ください。

複雑なオブジェクトを渡す 方法 1 または 2 を使用して、複雑なオブジェクトを渡すことができます (推奨)。Application クラスにカスタム プロパティを追加したり、Application.Current.Properties にデータを保存したりすることもできます。

于 2013-09-02T10:53:21.687 に答える