Какой метод следует использовать, чтобы определить, был ли установлен флажок пользователем для изменения статуса isChecked
в приложении для Windows-телефона? В моем коде я вручную устанавливаю флажок при запуске, и обратный вызов запускается сразу, в то время как я только хочу запустить обратный вызов, если пользователь взаимодействует с представлением.
public CheckBoxPage()
{
InitializeComponent();
AvailableCheckBox.IsChecked = true; //name of the checkbox
}
private void CheckBox_Checked(object sender, RoutedEventArgs e)//event handler
{
MessageBox.Show("Changed");
}
Используйте переменную, чтобы отслеживать, загружена ли страница или нет, и только обработчик делает что-то, если оно загружено.
private bool _isLoaded = false;
public CheckBoxPage()
{
InitializeComponent();
AvailableCheckBox.IsChecked = true;
_isLoaded = true; // enable the AvailableCheckBox_Checked handler
}
void AvailableCheckBox_Checked(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return; // stop here if not loaded yet
// everything is loaded so let execute some stuff
MessageBox.Show("Changed");
}
Добавьте обработчик после того, как вы решите, нужно ли проверять флажок.
public CheckBoxPage()
{
InitializeComponent();
AvailableCheckBox.IsChecked = true;
AvailableCheckBox.Checked += AvailableCheckBox_Checked;
}
void AvailableCheckBox_Checked(object sender, RoutedEventArgs e)
{
MessageBox.Show("Changed");
}
Используйте метод Click:
private void AvailableCheckBox_Click(object sender, RoutedEventArgs e)
{
if (AvailableCheckBox.IsChecked == true)
{
// Checked
}
}