2011-01-10 107 views
1

我有一個奇怪的問題。WPF綁定問題

我想綁定到一個圖像對象。我可以完美地綁定RenderTransform。但是OpacityProperty不能正確綁定。我不會收到錯誤,但在TranslationTransform將不會更新或更改不透明度。我不知道爲什麼:

Dim alpha As New Double 
alpha = 0 

Dim vImage As Image = CreatevImageControl() 
Dim translation As New TranslateTransform(0, 0) 

myGrid.Children.Add(vImage) 
Dim binding1 As New Binding() 
binding1.Source = translation 
vImage.SetBinding(Image.RenderTransformProperty, binding1) 

Dim binding2 As New Binding() 
binding2.Source = alpha 
vImage.SetBinding(Image.OpacityProperty, binding2) 

alpha = 1 
translation.X = -150 

回答

1

您的OpacityProperty如何知道alpha是否發生了變化? 帶有綁定的自動更新依賴於屬性更改時的通知。可以使用依賴屬性或實現INotifyPropertyChanged的類。

所以你的情況,阿爾法必須依賴屬性或某些類實現INotifyPropertyChanged的財產。

你TranslateTransform將通知有關更新的結合,因爲「X」是TranslateTransform的依賴項屬性。因此,綁定可以掛鉤一個更改事件並更新發生綁定目標更改。

+0

謝謝。我最終在定義要綁定的自定義對象的類中放置了一個圖像對象屬性。因爲所有的道具都在那裏,而且一切都在運行時完成,所以完好無損。 – vNick 2011-01-11 23:36:53