WP7 XAML中控件之间的动态绑定

时间:2011-07-21 20:53:38

标签: c# wpf xaml windows-phone-7

我试图在WP7 XAML中绘制一个简单的行,如下面的那一行。使用静态坐标值,这很好。

<Line Stroke="White" 
      X1="1" Y1="1" 
      X2="200" Y2="1" />

我需要的是根据匹配的属性值(例如 Id Name )将相对于同一Canvas上其他控件的坐标值绑定。一旦绑定了正确的控件,我需要获得和/或顶部 Canvas位置。使用模糊的伪代码,我希望能够做到这一点......

<Line Stroke="White" 
      X1="{Binding Canvas.Left, Source={Binding <a_control_where_a_property_equals_some_value>}}" Y1="1" 
      X2="200" Y2="1" />

我尝试了许多绑定方案但没有成功。更复杂的是,这是Windows Phone 7(WP7)绑定而不是完整的XAML。

注意:所有控件都是在运行时添加的,因此它们不是静态定义的。

任何建议???

1 个答案:

答案 0 :(得分:1)

您最希望的是使用ElementName。除此之外,您需要在两个控件都绑定的某个地方公开一个公共属性。可能在视图模型中,但这取决于您的设置。

ElementName示例:

<Canvas>
    <Line x:Name="line1" Stroke="White" X1="1" Y1="1"  X2="200" Y2="1" />
    <Line Stroke="White" X1="{Binding ElementName=line1, Path=X1}" Y1="10"  X2="200" Y2="1" />
</Canvas>