我正在尝试在 WP7 XAML 中绘制一条简单的线,如下所示。使用静态坐标值可以正常工作。
<Line Stroke="White"
X1="1" Y1="1"
X2="200" Y2="1" />
我需要的是根据匹配的属性值(例如它的 Id 或 Name)绑定(bind)相对于同一 Canvas 上其他控件的坐标值。绑定(bind)正确的控件后,我需要获取其 Left 和/或 Top Canvas 位置。使用模糊的伪代码,这是我希望能够做的...
<Line Stroke="White"
X1="{Binding Canvas.Left, Source={Binding <a_control_where_a_property_equals_some_value>}}" Y1="1"
X2="200" Y2="1" />
我已经尝试了很多绑定(bind)方案,但都没有成功。额外的复杂性在于这是 Windows Phone 7 (WP7) 绑定(bind)而不是完全成熟的 XAML。
注意:所有控件都是在运行时添加的,因此它们不是静态定义的。
有什么建议吗???
最佳答案
最好的办法就是使用 ElementName .除此之外,您需要在两个控件都将绑定(bind)到的某个地方公开一个公共(public)属性。可能在 View 模型中,但这取决于您的设置。
元素名称示例:
<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>
关于c# - WP7 XAML 中控件之间的动态绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6782647/