2009-09-30 1 views
0

У меня есть настраиваемый шаблон управления, содержащий элемент управления ползунком.
я называю, что в качестве части в классе, который реализует пользовательский элемент управления:Значение свойства параметра задачи в шаблоне пользовательского контроля. Часть

[TemplatePart(Name = MapZoomSliderName, Type = typeof(Slider))] 

В OnApplyTemplate() переопределение, я получаю Slider:

 MapZoomSlider = (Slider) GetTemplateChild("MapZoomSlider"); 
     if (null != MapZoomSlider) 
     { 

      MapZoomSlider.ValueChanged +=new RoutedPropertyChangedEventHandler<double>(MapZoomSlider_ValueChanged); 
      MapZoomSlider.Value = InitSliderValue; // crash 
      _lastSliderValue = MapZoomSlider.Value; 
     } 

Когда я пытаюсь установить слайдер Свойство Value, приложение вылетает с «Ссылка объекта не установлена ​​в экземпляр объекта».
Получение значения ползунка работает должным образом.
Что мне нужно сделать, чтобы установить значение ползунка во время выполнения?
Спасибо за любые советы ...

ответ

0

Что такое «InitSliderValue»? Может быть, это неправильный тип ценности? (Должно быть двойным). Кроме того, нулевые или отрицательные значения могут быть недействительными.

0

Похоже, проблема заключалась в установке обработчика ValueChanged перед изменением свойства Value. Обработчик ValueChanged пытается манипулировать другими частями приложения, которые еще не готовы.
Если я установил значение, добавьте обработчик, он будет работать по желанию.

MapZoomSlider.Value = InitSliderValue; // all good 
MapZoomSlider.ValueChanged +=new RoutedPropertyChangedEventHandler<double>(MapZoomSlider_ValueChanged); 
Смежные вопросы