我试图在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。
注意:所有控件都是在运行时添加的,因此它们不是静态定义的。
任何建议???
答案 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>