Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Silverlight 3.0 在自定义控件模板零件上设置属性值时出现问题_Silverlight 3.0 - Fatal编程技术网

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);