2011-01-15 13 views
0

私は、ユーザー情報を収集するために、この単純なXAMLページがあります。エミュレータでApplicationSettingsが正常に動作していますか?

//Set and display user a set of default values if user is accessing page for first time else retrieve data from the settings 
private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e) 
    { 
     var settings = IsolatedStorageSettings.ApplicationSettings; 

     if (settings.Contains("birthyear")) 
      birthyear.Text = settings["birthyear"].ToString(); 
     else 
     {     
      birthyear.Text = (DateTime.Now.Year - 25).ToString(); 
      settings.Add("birthyear", birthyear.Text); 
     } 

     if (settings.Contains("postcode")) 
      birthyear.Text = settings["postcode"].ToString(); 
     else 
     { 
      postcode.Text = "10044"; 
      settings.Add("postcode", postcode.Text); 
     } 
    } 

private void save_Click(object sender, RoutedEventArgs e) 
{ 
    var settings = IsolatedStorageSettings.ApplicationSettings; 

    //ignore error conditions for the time being!  
    settings.Remove("birthyear"); 
    settings.Add("birthyear", birthyear.Text); 

    settings.Remove("postcode"); 
    settings.Add("postcode", postcode.Text); 

    settings.Save(); 

    //Navigate to the same page to validate values entered by user is saved 
    NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative)); 
} 

が今問題に来る:背後

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> 
     <TextBlock Height="50" HorizontalAlignment="Left" Margin="6,36,0,0" Text="Enter your birth year :" VerticalAlignment="Top" Width="312" FontSize="32" /> 
     <TextBox FontSize="32" Height="84" HorizontalAlignment="Left" Margin="310,19,0,0" Name="birthyear" Text="" VerticalAlignment="Top" Width="146" TextAlignment="Center" /> 
     <TextBlock Height="60" HorizontalAlignment="Left" Margin="12,112,0,0" Name="birthyear_message" Text="" VerticalAlignment="Top" Width="438" />    
     <TextBlock FontSize="32" Height="50" HorizontalAlignment="Left" Margin="6,283,0,0" Text="Enter your post code :" VerticalAlignment="Top" Width="312" /> 
     <TextBox FontSize="32" TextAlignment="Center" Height="82" HorizontalAlignment="Left" Margin="310,268,0,0" Name="postcode" Text="" VerticalAlignment="Top" Width="146" /> 
     <TextBlock Height="60" HorizontalAlignment="Left" Margin="12,356,0,0" Name="postcode_message" Text="" VerticalAlignment="Top" Width="438" /> 
     <Button Content="Cancel" Height="72" HorizontalAlignment="Left" Margin="31,441,0,0" Name="cancel" VerticalAlignment="Top" Width="160" Click="cancel_Click" /> 
     <Button Content="Save" Height="72" HorizontalAlignment="Left" Margin="247,441,0,0" Name="save" VerticalAlignment="Top" Width="160" Click="save_Click" />    
</Grid> 

私のコードは次のようです。ユーザーが最初にナビゲートすると、1986年と10044年のデフォルト値が表示されます。今度は、1999と65222のように値を編集し、保存を選択します。今起こっていることは、誕生日が65222を示し、郵便番号が空白になっていることです。何が問題ですか?

更新: VSで中間ウィンドウの値を取得しようとすると、新しい値が正しく表示されます。私は、あなたが代わりに値をchangeingしてみてください、と

settings["birthyear"] = birthyear.Text; 
settings["postcode"] = postcode.Text; 

を行うことができ、それが適切に保存しているが、それを表示する/

+0

私は(settings.Contains( "郵便番号" 場合、私は間違った値 を表示していた...これ以上愚かなことができませんでした)) birthyear.Text = settings ["postcode"]。ToString(); postcode.Text – Ravi

答えて

1

を取得中に問題を抱えている推測そしておそらくまた、型IsolatedStorageSettingsように設定をキャストしてみてください。午前

EDIT:

settings.Remove("birthyear"); 
settings.Add("birthyear", birthyear.Text); 

settings.Remove("postcode"); 
settings.Add("postcode", postcode.Text); 

settings.Save(); 

は次のようになります。

settings["birthyear"] = birthyear.Text; 
settings["postcode"] = postcode.Text; 
+0

のは、保存または取得中に値を変更するという意味ですか?保存中は – Ravi

+0

です。このコードは、削除と追加を置き換えます。 –

+0

すごい時間を無駄にして申し訳ありません...私は愚かな間違いをしました...とにかくそれを即座に見てくれてありがとう – Ravi

関連する問題