2014-05-19 2 views
1

Какой метод следует использовать для определения того, был ли у пользователя установлен флажок, чтобы изменить статус isChecked в приложении для Windows-телефона? В моем коде я вручную устанавливаю флажок при запуске, и обратный вызов запускается сразу, в то время как я только хочу запустить обратный вызов, если пользователь взаимодействует с представлением.Checkbox checkbox touch

public CheckBoxPage() 
    { 
     InitializeComponent(); 
     AvailableCheckBox.IsChecked = true; //name of the checkbox 
    } 
    private void CheckBox_Checked(object sender, RoutedEventArgs e)//event handler 
    { 
     MessageBox.Show("Changed"); 
    } 
+0

Можете ли вы показать нам код, который у вас есть сейчас? – erapert

+0

@erapert updated – kabuto178

+0

Почему бы не поставить IsChecked в XAML? Не думайте, что он будет поднят тогда. –

ответ

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's execute some stuff 
    MessageBox.Show("Changed"); 
} 
+0

Решил пойти с этим, так как я объявил своих обработчиков событий из файла XAML. – kabuto178

0

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

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

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

public CheckBoxPage() 
{ 
    InitializeComponent(); 

    AvailableCheckBox.IsChecked = true; 

    AvailableCheckBox.Checked += AvailableCheckBox_Checked; 
} 

void AvailableCheckBox_Checked(object sender, RoutedEventArgs e) 
{ 
    MessageBox.Show("Changed"); 
} 
Смежные вопросы