【问题标题】:Dependency property not passing the default value on initial binding依赖属性未在初始绑定时传递默认值
【发布时间】:2019-12-27 12:32:46
【问题描述】:

我有一个自定义按钮,并且我已经在前景上设置了一个依赖属性,除了第一次尝试传递 null 而不是预期的蓝色纯色画笔之外,事件都很好地引发。

代码在后续调用中会很好地更改颜色,因此这只是我遇到问题的初始设置。任何帮助将不胜感激。

这是我的代码:

    Public Shared Shadows ReadOnly ForegroundProperty As DependencyProperty = DependencyProperty.Register("Foreground",
   GetType(Brush), GetType(TouchButton), New PropertyMetadata(New SolidColorBrush With {.Color = Colors.Blue},
   New PropertyChangedCallback(AddressOf OnForegroundChanged)))

【问题讨论】:

  • 控件已经有一个 Foreground 属性。如果您的 TouchButton 没有从控件继承,那将是一个有点奇怪的命名,但我想仍然可能。如果是这样,那么您有两个前景属性,这将意味着奇怪的行为。无论哪种方式,我都强烈建议为您添加的任何依赖项属性使用唯一名称。
  • 我正在隐藏依赖属性并在前景属性上使用重载,这允许我将前景用作依赖项。正如我所说,它适用于所有其他方面,但没有设置默认值。

标签: wpf vb.net dependency-properties


【解决方案1】:

我发现了问题,在我的绑定中,我在运行时添加了代码,因为控件是动态添加的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-26
    • 2011-08-19
    • 2015-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-01
    相关资源
    最近更新 更多