Here's a much-abbreviated sample of my code.
<Grid>
<Polygon
Name="ply" Grid.Column="2" Grid.Row="0" Grid.RowSpan="3"
Fill="Orange" Stroke="Orange" Points="0,1 1,3 2,2 2,0 0,0"
/>
<Line
Grid.Column= "{Binding ElementName=ply, Path=Grid.Column, Mode=OneWay}"
Grid.Row= "{Binding ElementName=ply, Path=Grid.Row, Mode=OneWay}"
Grid.ColumnSpan="{Binding ElementName=ply, Path=Grid.ColumnSpan, Mode=OneWay}"
Grid.RowSpan= "{Binding ElementName=ply, Path=Grid.RowSpan, Mode=OneWay}"
X1="0" Y1="0" X2="1" Y2="1"
/>
</Grid>
The code compiles just fine, without any errors or warnings - but when I run the application, this appears in the output window:
System.Windows.Data Error: 39 : BindingExpression path error:
'Grid' property not found on 'object' ''Polygon' (Name='ply')'.
BindingExpression:Path=Grid.Column; DataItem='Polygon' (Name='ply');
target element is 'Line' (Name=''); target property is 'Column' (type 'Int32')
System.Windows.Data Error: 39 : BindingExpression path error:
'Grid' property not found on 'object' ''Polygon' (Name='ply')'.
BindingExpression:Path=Grid.Row; DataItem='Polygon' (Name='ply');
target element is 'Line' (Name=''); target property is 'Row' (type 'Int32')
System.Windows.Data Error: 39 : BindingExpression path error:
'Grid' property not found on 'object' ''Polygon' (Name='ply')'.
BindingExpression:Path=Grid.ColumnSpan; DataItem='Polygon' (Name='ply');
target element is 'Line' (Name=''); target property is 'ColumnSpan' (type 'Int32')
System.Windows.Data Error: 39 : BindingExpression path error:
'Grid' property not found on 'object' ''Polygon' (Name='ply')'.
BindingExpression:Path=Grid.RowSpan; DataItem='Polygon' (Name='ply');
target element is 'Line' (Name=''); target property is 'RowSpan' (type 'Int32')
I'm clearly not doing this correctly, so my question is:
How do I properly reference the attached property "Grid.Whatever" on the source element in my data-binding? Am I going to have to perform the binding in the code-behind instead, or will a XAML binding with different syntax be sufficient?