0

我正在尝试详细了解 WPF。到目前为止,我不知道两件事是如何工作的:

1.依赖属性(DP)存储在哪里?

我的猜测:DP 是静态的,所以这个对象(DP)对于从类派生的所有具有这个 DP 的对象都是相同的。我想 DP 有自己的存储,其中 DP 保存使用此 DP 的所有对象的值。Mb sth like dictionary...

2.Grid如何将一个对象(例如Button)分配给它自己的行(详细)?

我的猜测:

Button Grid.Row="1" (in XAML)

SetRow(来自 Grid)将被执行。PropertyChangedCallback(在元数据中初始化)也将被触发。我想 Grid 将通过此 Callback 中的某些代码分配 Button,但这对我来说毫无意义...... Callback 将获得 DepedencyObject(= Grid 实例)和 EventArgs(= 值)。网格如何知道哪个对象更改了附加依赖属性?网格应该有自己的对象位置存储......网格如何保存这些信息?

提前感谢您的解释。

4

1 回答 1

0
  1. 是的,有某种静态字典将对象与其值相关联(在各种级别、样式、本地值等。值是通过优先级确定的)。内部对您来说应该无关紧要。
  2. 错误,设置属性的依赖对象被传递给回调,而不是网格。(反正没有直接找到网格实例,然后通过 找到网格实例VisualTreeHelper.GetParent)。该机制可能通过Grid.Children在布局过程中循环并获取它们的属性来确定所有内容应该去哪里。
于 2012-06-03T20:03:52.670 回答