Silverlight 3.0 在自定义控件模板零件上设置属性值时出现问题
我有一个自定义控件模板,其中包含一个滑块控件。Silverlight 3.0 在自定义控件模板零件上设置属性值时出现问题,silverlight-3.0,Silverlight 3.0,我有一个自定义控件模板,其中包含一个滑块控件。 我将其命名为实现自定义控件的类中的一部分: [TemplatePart(Name = MapZoomSliderName, Type = typeof(Slider))] 在OnApplyTemplate()覆盖中,我得到了滑块: MapZoomSlider = (Slider) GetTemplateChild("MapZoomSlider"); if (null != MapZoomSlider)
我将其命名为实现自定义控件的类中的一部分:
[TemplatePart(Name = MapZoomSliderName, Type = typeof(Slider))]
在OnApplyTemplate()覆盖中,我得到了滑块:
MapZoomSlider = (Slider) GetTemplateChild("MapZoomSlider");
if (null != MapZoomSlider)
{
MapZoomSlider.ValueChanged +=new RoutedPropertyChangedEventHandler<double>(MapZoomSlider_ValueChanged);
MapZoomSlider.Value = InitSliderValue; // crash
_lastSliderValue = MapZoomSlider.Value;
}
MapZoomSlider=(滑块)GetTemplateChild(“MapZoomSlider”);
如果(null!=MapZoomSlider)
{
MapZoomSlider.ValueChanged+=新路由属性ChangedEventHandler(MapZoomSlider\u ValueChanged);
MapZoomSlider.Value=InitSliderValue;//崩溃
_lastSliderValue=MapZoomSlider.Value;
}
当我尝试设置滑块的Value属性时,应用程序会崩溃,“对象引用未设置为对象的实例。”获取滑块的值按预期工作。
在运行时设置滑块值需要做什么?
谢谢你的提示…什么是“InitSliderValue”?可能是错误的值类型?(必须是双精度)此外,零或负可能不是有效值。似乎问题在于在更改value属性之前设置ValueChanged处理程序。ValueChanged处理程序尝试操作应用程序的其他部分,这些部分可能尚未准备就绪。
如果我设置该值,然后添加处理程序,它将按需要工作
MapZoomSlider.Value = InitSliderValue; // all good
MapZoomSlider.ValueChanged +=new RoutedPropertyChangedEventHandler<double>(MapZoomSlider_ValueChanged);
MapZoomSlider.Value=InitSliderValue;//一切都好
MapZoomSlider.ValueChanged+=新路由属性ChangedEventHandler(MapZoomSlider\u ValueChanged);