绑定到Path.Data属性是否有效

本文关键字:是否 有效 属性 Data Path 绑定 | 更新日期: 2023-09-27 18:00:58

编辑:注意!这是我的代码中的一个拼写错误

根据msdn的说法,Path.Data似乎是可绑定的。但我不知道如何阅读msdn页面中的Depenedency Property Information部分。AffectsRender和AffectsMeasure够我用吗?

如果我使用x:Name直接指定它,几何体将显示

var curve = new GeometryGroup();
curve.Children.Add(new LineGeometry(new Point(0, 0), new Point(20, 20)));
curve.Children.Add(new LineGeometry(new Point(0, 20), new Point(20, 0)));
CurveGraph.Data = curve;

这很好用。画一个漂亮的"X"。

但是,如果我在ViewModel 中有GeometryGroup类型的依赖属性

var curve = new GeometryGroup();
curve.Children.Add(new LineGeometry(new Point(0, 0), new Point(20, 20)));
curve.Children.Add(new LineGeometry(new Point(0, 20), new Point(20, 0)));
GeometryData= curve;

dp:

public GeometryGroup GeometryData
    {
        get { return (GeometryGroup)GetValue(GeometryDataProperty); }
        set { SetValue(GeometryDataProperty, value); }
    }
    public static readonly DependencyProperty GeometryDataProperty =  DependencyProperty.Register("GeometryDataProperty", typeof(GeometryGroup), typeof(MiniTrendVm), new UIPropertyMetadata(new GeometryGroup()));

然后就没用了。什么也没发生。没有"X"。

xaml:

<Path Data="{Binding GeometryData}" x:Name="CurveGraph" Stroke = "{Binding StrokeColor}" StrokeThickness = "2" Grid.RowSpan="4"/> 

这样行吗?我的手指胖了吗?或者不能以这种方式设置Data属性?笔刷在这两种情况下都是数据绑定的,所以我知道数据上下文设置正确。

绑定到Path.Data属性是否有效

您的DependencyProperty注册为"GeometryDataProperty",应该是"GeometryData"。不太确定这是否真的打破了束缚编辑:H.B.最近的测试表明,这可能确实是原因。可以绑定该属性。