2012-05-24 75 views
0

在我們的項目中,我們創建了一些具有一些依賴屬性的自定義控件。在我們使用此控件的xaml頁面上,我們將Map控件的BoundingRectangle屬性綁定到此自定義控件,以便我們可以在自定義控件中使用這些LocationRect對象。將BoundingRectangle綁定到自定義控件依賴項屬性

當我們調試這個時,我們看到BoundingRectangle(North,NorthEast等)中的每個屬性都具有相同的位置。如果我們正在檢查地圖上的屬性,那麼我們會發現這些屬性並不完全相同。 (如預期的那樣)

我附加了一個更改回調到dependencyproperty,並且在那裏我看到所有屬性都具有相同的值。但是,如果我綁定中心屬性比我看到它更新正確。

我們結合對類似這樣的定製控件的屬性:

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

任何人都知道,爲什麼不更新的BoundingBox屬性時LocationRectangle是在地圖上更新?

+0

您沒有解釋問題是什麼:我假設問題是當Map中的BoundingRectangle屬性發生更改時,自定義控件中的BoundingBox屬性不會更新。這是問題嗎?如果是:是Map的依賴項屬性中的BoundingRectangle屬性?如果它不是一個依賴屬性:Map實現INotifyPropertyChanged嗎? – 2012-05-24 15:32:03

+0

你說得對,我已經更新了這個問題。我正在使用內置的Microsoft Bing Maps控件,有沒有辦法檢查BoundingRectangle屬性是否是依賴項屬性? – ChristiaanV

+0

如果文檔提到名爲'BoundingRectangleProperty'的字段,那麼它是一個依賴項屬性。否則,這是一個普通的財產。 – 2012-05-24 19:05:53

回答

0

檢查了fmunkert建議的文檔,發現Bing地圖控件上的BoundingBox不是依賴項屬性。

我們創建了一個實現ViewChanged事件並更新我們自己的依賴項屬性的自定義映射,我們現在可以使用它綁定到其他控件。