添付プロパティを設定すると、値は要素にのみ格納され、添付プロパティが属する型には格納されません。
たとえば、添付された行プロパティは次のように実装されます。
public static readonly DependencyProperty RowProperty = ...;
public static void SetRow(UIElement element, int value)
{
element.SetValue(RowProperty, value);
}
public static int GetRow(UIElement element)
{
return (int)element.GetValue(RowProperty);
}
したがって、 を呼び出すGrid.SetRow
と、内部的element.SetValue
に が呼び出されます。依存オブジェクトと同様element
に、これらの追加のプロパティを格納できます。と. Dictionary<DependencyProperty, object>
_ SetValue
_GetValue
したがって、値は依存オブジェクト自体の内部にのみ格納されます。これで、Grid がそれ自体をレンダリングするときに、その子を繰り返し処理して、測定およびレイアウト ルーチンを呼び出します。また、それらの各子に対して、添付された行プロパティが設定されているかどうかを確認するように呼び出しGrid.GetRow
、それに応じて独自のレイアウト フェーズでそれらの選択を尊重します。