2013-12-23 2 views
0

Эта проблема прослушивает меня в течение 2 дней, и я не могу ее решить.Сводка выбора изменена refired

У меня есть свод, к которому я добавляю PivotItems динамически, в зависимости от того, что выбрано. Im, используя событие SelectionChanged и внутри обработчика событий, я очищаю &, добавляя новые элементы. Чтобы выбрать правильный элемент после этого, я изменяю выбранный индекс, но, похоже, после него он снова выходит за пределы функции. Я представить обработчик (следует отметить, что это класс на основе класса Pivot. Шахта называется CalendarPivot и элементы называются CalendarPivotItem)

private void CalendarPivot_SelectionChanged(object sender, SelectionChangedEventArgs e) 
     { 
      this.SelectionChanged -= CalendarPivot_SelectionChanged; 

      this.zoomDate = ((CalendarPivotItem)Items.ElementAtOrDefault(SelectedIndex)).date; 

      this.Items.Clear(); 

      this.Items.Add(new CalendarPivotItem(zoomDate, 2)); 
      this.Items.Add(new CalendarPivotItem(zoomDate.AddMonths(1), 2)); 
      this.Items.Add(new CalendarPivotItem(zoomDate.AddMonths(-1), 2)); 

      this.SelectedIndex = 0; 

      this.SelectionChanged += CalendarPivot_SelectionChanged; 
     } 
+0

Вы могли бы попытаться отсоединить обработчик событий от отправителя? –

+0

Пробовал, не работал. Проблема, похоже, связана с базовым классом, изменяющим выбранный индекс после того, как функция – Jakkes

ответ

Смежные вопросы