编辑:注意!这在我的代码中是一个拼写错误
According to 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属性?在两种情况下都是数据绑定,因此我知道datacontext已正确设置。
答案 0 :(得分:3)
您的DependencyProperty
注册为"GeometryDataProperty"
,应该是"GeometryData"
。不太确定这是否真的破坏了绑定。 编辑 H.B.最近的测试揭示这可能确实是原因。绑定该属性是可能的。