我使用了下面的數據模板:一個值轉換爲多個屬性
<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