1

我有以下代码,我想以编程方式创建。其中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" />

我可以以编程方式创建一个,但自 2 天以来我一直坚持使用Path=Behaviour.Behaviours[0].CurrentPoints[i].Y,我无法看到如何以编程方式创建它!

谢谢你的帮助

编辑

这是工作

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);
4

1 回答 1

2

大概您将在某种 for 循环中构建此绑定?

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

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

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

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

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

于 2011-08-10T08:16:01.420 回答