如何使用c#以绑定元素以编程方式创建矩形和文本块?

时间:2011-08-09 16:38:36

标签: xaml c#-4.0 binding visiblox

我有以下代码,我想以编程方式创建。其中 i 必须是xaml的整数!这是来自VISIBLOX的示例代码。

<Rectangle Margin="20,0,0,5" Height="10" Width="10" Fill="{Binding ElementName=chart, Path=Series[i].LineStroke}" VerticalAlignment="Center" />
        <TextBlock Margin="4,0,0,0" Text="{Binding ElementName=chart, Path=Series[i].DataSeries.Title}"  />
        <TextBlock Margin="4,0,0,0"  Text="(" HorizontalAlignment="Left" />
        <TextBlock Text="{Binding ElementName=chart, Path=Behaviour.Behaviours[0].CurrentPoints[i].Y, StringFormat=0.00}" Width="38" />
        <TextBlock Text=")" HorizontalAlignment="Right" />

我可以通过 Path = Behaviour.Behaviours [0] .CurrentPoints [i] .Y 以编程方式创建一个最强大的但是我很难看到我如何以编程方式创建它!

感谢您的帮助

修改

IT的工作

TextBlock txtBlock3 = new TextBlock();
Binding txtBinding3 = new Binding();
txtBinding3.ElementName = "MainChart";
txtBinding3.Path = new PropertyPath("Behaviour.Behaviours[0].CurrentPoints[" + index +"].Y");
txtBlock3.SetBinding(TextBlock.TextProperty, txtBinding3);
txtBlock3.HorizontalAlignment = System.Windows.HorizontalAlignment.Center;
Panel.Children.Add(txtBlock3);

1 个答案:

答案 0 :(得分:2)

据推测,你将在某种for循环中构建这个Binding?

如果是这样,你不能做类似的事情:

Binding b = new Binding { Path = new PropertyPath("Behaviour.Behaviours[0].CurrentPoints[" + i +"].Y”) };

在哪里,for循环中有索引器?我不确定我是否完全理解这个问题,所以也许你可以详细说明一下这个问题?

如果您尝试根据CurrentPoints中可用的内容绑定其他内容,则可能需要绑定到Benaviour.Behaviours [0]并使用转换器返回正确的Y值。

如果您需要更多帮助,请告诉我们!