Обнаружение сенсорного флажка

1

Какой метод следует использовать, чтобы определить, был ли установлен флажок пользователем для изменения статуса 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");
    }
Теги:
windows-phone-7

3 ответа

0
Лучший ответ

Используйте переменную, чтобы отслеживать, загружена ли страница или нет, и только обработчик делает что-то, если оно загружено.

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");
}
  • 0
    Решил пойти с этим, так как я объявил свои обработчики событий из файла XAML.
0

Добавьте обработчик после того, как вы решите, нужно ли проверять флажок.

public CheckBoxPage()
{
    InitializeComponent();

    AvailableCheckBox.IsChecked = true;

    AvailableCheckBox.Checked += AvailableCheckBox_Checked;
}

void AvailableCheckBox_Checked(object sender, RoutedEventArgs e)
{
    MessageBox.Show("Changed");
}
0

Используйте метод Click:

private void AvailableCheckBox_Click(object sender, RoutedEventArgs e)
{
    if (AvailableCheckBox.IsChecked == true)
    {
        // Checked
    }
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню