C# 在silverlight 4中将两个不同的转换绑定在一起
我尝试在代码(c#)中的silverlight 4中将translateTransform和compositeTransform绑定在一起。我不能在xaml中这样做,因为UIelements是动态加载的。我只需要补偿。compositeTransform是源代码。我有流动代码,但它不起作用:C# 在silverlight 4中将两个不同的转换绑定在一起,c#,silverlight,C#,Silverlight,我尝试在代码(c#)中的silverlight 4中将translateTransform和compositeTransform绑定在一起。我不能在xaml中这样做,因为UIelements是动态加载的。我只需要补偿。compositeTransform是源代码。我有流动代码,但它不起作用: TranslateTransform trans = new TranslateTransform(); Binding transBind = new Binding("Value"); transBin
TranslateTransform trans = new TranslateTransform();
Binding transBind = new Binding("Value");
transBind.Source = ((CompositeTransform)SchedulePanel.RenderTransform);
BindingOperations.SetBinding(trans, TranslateTransform.XProperty, transBind);
line.TextChannelName.RenderTransform = trans;
谢谢在我看来:-
Binding transBind = new Binding("Value");
应该是
Binding transBind = new Binding("TranslateX");
复合转换没有“Value”属性。因为TranslateTransform不是框架元素,所以要成为绑定的目标,它必须满足以下条件之一(来自MSDN): 在Silverlight 4中,在以下情况下,目标也可以是DependencyObject的DependencyProperty:
- DependencyObject是FrameworkElement属性的值
- DependencyObject位于FrameworkElement属性(例如,Resources属性)值的集合中
- DependencyObject位于DependencyObjectCollection中
只要子控件有自己的DataContext集,或者从父容器继承一个,就没有理由不能在子控件中有绑定。如何加载/创建动态控件?
TranslateTransform trans = new TranslateTransform();
line.TextChannelName.RenderTransform = trans;
Binding transBind = new Binding("Value");
transBind.Source = ((CompositeTransform)SchedulePanel.RenderTransform);
BindingOperations.SetBinding(trans, TranslateTransform.XProperty, transBind);