Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在silverlight 4中将两个不同的转换绑定在一起_C#_Silverlight - Fatal编程技术网

C# 在silverlight 4中将两个不同的转换绑定在一起

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

我尝试在代码(c#)中的silverlight 4中将translateTransform和compositeTransform绑定在一起。我不能在xaml中这样做,因为UIelements是动态加载的。我只需要补偿。compositeTransform是源代码。我有流动代码,但它不起作用:

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中

因此,在设置绑定之前,请尝试将transTranslateTransform设置为TextChannelName的转换,以便在设置存储箱时,目标

尝试:


只要子控件有自己的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);