次のように定義された依存関係プロパティの例があります。
public Polyline Shape
{
get { return (Polyline)GetValue(ShapeProperty); }
set { SetValue(ShapeProperty, value); }
}
public static readonly DependencyProperty ShapeProperty =
DependencyProperty.Register("Shape", typeof(Polyline),
typeof(CustomControl), new FrameworkPropertyMetadata(null,
FrameworkPropertyMetadataOptions.AffectsRender, onShapeAdded));
私はそれを次のように設定しています:
<local:CustomControl>
<local:CustomControl.Shape>
<Polyline Points="0,180 0,80 70,80 90,180 0,180" />
</local:CustomControl.Shape>
</local:CustomControl>
コールバックは次のようになります。
private static void onShapeAdded(DependencyObject d,
DependencyPropertyChangedEventArgs e)
{
Polyline control = (Polyline)e.NewValue;
//control.Points is always null
}
コールバック中にPointsコレクションが常にnullになるのはなぜですか?(すべてのプロパティで発生します)最後にポイントが設定されているので、コントロールにアクセスするのが早すぎると思いますが、すべてのプロパティが設定された状態でいつ、どのようにコントロールにアクセスする必要がありますか?