2011-01-10 141 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