Инициализировать переключатель как отмеченный из настроек, сохраненных в PhoneApplicationService

#c# #windows-phone-7 #radio-button

#c# #windows-phone-7 #переключатель

Вопрос:

Я разрабатываю приложение для Windows phone. У меня есть страница настроек, которая постоянно загружается со значением по умолчанию. Я использовал PhoneApplicationService свойство для сохранения имени переключателей, которые были проверены, чтобы сохранить значение, которое будет использоваться в следующий раз.

В классе конструктора страницы настроек, как я должен кодировать для инициализации с именем переключателей, которые сохраняются в PhoneApplicationService

 <RadioButton Content="Black" Name="ic_black" GroupName="gColor" Click="icChange" />
<RadioButton Content="Blue" GroupName="gColor" Name="ic_blue" Click="icChange" />
<RadioButton Content="Brown" GroupName="gColor" Name="ic_brown" Click="icChange" />
<RadioButton Content="Gray" GroupName="gColor" Name="ic_gray"  Click="icChange" />
  

Приведенный выше код является xaml для страницы настроек. Метод icChange получает имя переключателя и сохраняет его в PhoneApplicationService.State["color"]

 {
            InitializeComponent();
            object prefs;
            string temp;
            if (prefs.State.TryGetValue("color", out prefs))
            {
                temp =  prefs.ToString();
                //the name of the radio button to be checked is the variable temp..
                //code to initialize the correct radio button from prefs
            }
}
  

Ответ №1:

Я бы предложил что-то вроде следующего, даже если это не самое лучшее:

 temp =  prefs.ToString();  
if(ic_black.Name == temp) ic_black.IsChecked = true;
else if(ic_blue.Name == temp) ic_blue.IsChecked = true;
else if(ic_brown.Name == temp) ic_brown.IsChecked = true;
else if(ic_gray.Name == temp) ic_gray.IsChecked = true;
else //Do the default case