我正在尝试详细了解WPF。到目前为止我不知道如何工作2件事:
1.存储依赖属性(DP)?
我的猜测:DP是静态的,因此这个对象(DP)对于从类派生的具有此DP的所有对象都是相同的。我认为DP有自己的存储空间,其中DP为使用此DP的所有对象保存值。 Mb ......喜欢字典...
2.网格如何将对象(例如Button)分配给自己的行(详细信息)?
我的猜测:
Button Grid.Row="1" (in XAML)
将执行SetRow(来自Grid)。 PropertyChangedCallback(在元数据中初始化)也将被触发。我想Grid会在这个Callback中通过一些代码来分配Button,但对我来说没有意义......回调将得到DepedencyObject(= Grid实例)和EventArgs(= value)。网格如何知道哪个对象更改了附加依赖属性?网格应该有自己的对象位置存储...网格如何保存该信息?
提前感谢您的解释。
答案 0 :(得分:0)
VisualTreeHelper.GetParent
找到网格实例)。该机制可能通过在布局过程中循环遍历Grid.Children
并获取其属性来确定应该去哪里。