我使用了下面的数据模板:一个值转换为多个属性
<DataTemplate>
<Grid Width="40" Height="40">
<Ellipse Width="30" Height="30" x:Name="ellipse" />
<TextBlock Text="{Binding Robot.Id}" HorizontalAlignment="Center" VerticalAlignment="Center" />
<Line X1="20" X2="40" X2="20" X2="30" x:Name="line" />
</Grid>
</DataTemplate>
我想下面的代码应用到线的时候的DataContext的属性变化:
void UpdateHeading(double angle)
{
var center = grid.Width/2;
var radius = ellipse.Width/2;
line.X1 = center + (radius+5)*Math.Sin(angle);
line.Y1 = center + (radius+5)*Math.Cos(angle);
line.X2 = center + (radius-5)*Math.Sin(angle);
line.Y2 = center + (radius-5)*Math.Cos(angle);
}
请注意,代码需要访问其他两个元素的大小
添加代码的最佳方式是什么?使用值转换器似乎并不在这里,因为我需要一个属性转换到四个
其中多个值转换为一个属性... – kshahar 2011-03-25 19:50:26
我已经更新我的答案。 – Trantinator 2011-03-25 20:00:09
谢谢你的例子。通过下面的示例,我将不得不在XAML中复制这4次,并使用4个转换器或传递目标类型(X1/Y1/X2/Y2)作为参数。有没有更好的方法来实现这个目标? – kshahar 2011-03-25 20:09:15