【问题标题】:Binding BoundingRectangle to custom control dependency property将 BoundingRectangle 绑定到自定义控件依赖属性
【发布时间】:2012-05-24 13:02:32
【问题描述】:

在我们的项目中,我们创建了一个带有一些依赖属性的自定义控件。在我们使用此控件的 xaml 页面上,我们将 Map 控件的 BoundingRectangle 属性绑定到此自定义控件,以便我们可以在自定义控件中使用这些 LocationRect 对象。

当我们对此进行调试时,我们看到 BoundingRectangle 中的每个属性(North、NorthEast 等)都具有相同的位置。如果我们检查地图上的属性,我们会发现这些属性并不完全相同。 (如预期)

我已将更改回调附加到依赖属性,并且在那里我看到所有属性都具有相同的值。但是,如果我绑定 Center 属性,我会看到它正确更新。

我们将属性绑定到自定义控件上,如下所示:

<CustomControls:MiniMap Name="SmallMap" BoundingBox="{Binding ElementName=Map, Path=BoundingRectangle}" />

这是我们的依赖属性:

 public static readonly DependencyProperty BoundingBoxProperty =
            DependencyProperty.Register("BoundingBox", typeof(Location), typeof(MiniMap), new UIPropertyMetadata(new LocationRect()));

有人知道为什么在地图上更新 LocationRectangle 时 BoundingBox 属性没有更新吗?

【问题讨论】:

  • 您没有解释问题是什么:我认为问题是当 Map 中的 BoundingRectangle 属性更改时,您的自定义控件中的 BoundingBox 属性没有更新。那是问题吗?如果是:Map 中的 BoundingRectangle 属性是依赖属性吗?如果它不是依赖属性: Map 是否实现 INotifyPropertyChanged?
  • 你说得对,我已经更新了问题。我正在使用内置的 Microsoft Bing Maps 控件,有没有办法检查 BoundingRectangle 属性是否是依赖属性?
  • 如果文档中提到了一个名为BoundingRectangleProperty 的字段,那么它就是一个依赖属性。否则为普通属性。

标签: wpf binding dependency-properties pixelsense


【解决方案1】:

按照 fmunkert 的建议检查了文档,发现 Bing 地图控件上的 BoundingBox 不是依赖属性。

我们创建了一个自定义映射,它实现了 ViewChanged 事件并更新了我们自己的依赖属性,我们现在可以使用它来绑定到我们的其他控件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-29
    • 2012-08-07
    • 2019-05-26
    • 2021-08-17
    • 2011-05-08
    • 2011-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多