【发布时间】: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