【问题标题】:Problem setting property value on Custom Control Template Part自定义控件模板部件上的问题设置属性值
【发布时间】:2009-09-30 12:53:08
【问题描述】:

我有一个包含 Slider 控件的自定义控件模板。
我将其命名为实现自定义控件的类中的一部分:

[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;
        }

当我尝试设置 Slider 的 Value 属性时,应用程序崩溃并显示“对象引用未设置为对象的实例。”
获取滑块的值按预期工作。
我需要做什么才能在运行时设置 Slider 的值?
感谢您的任何提示...

【问题讨论】:

    标签: silverlight-3.0


    【解决方案1】:

    什么是“InitSliderValue”?也许它的值类型错误? (必须是双精度数)此外,零或负数可能不是有效值。

    【讨论】:

      【解决方案2】:

      看来问题在于在更改 Value 属性之前设置 ValueChanged 处理程序。 ValueChanged 处理程序尝试操作应用程序的其他部分,这些部分可能尚未准备好。
      如果我设置值,然后添加处理程序,它会按需要工作。

      MapZoomSlider.Value = InitSliderValue;  // all good
      MapZoomSlider.ValueChanged +=new RoutedPropertyChangedEventHandler<double>(MapZoomSlider_ValueChanged);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多