我有一个UserControl,其中包含一个名为ItemsSource
的依赖项属性。当属性改变时,我需要计算各种元素的大小。为此,我必须访问UserControl的ActualWidth
和ActualHeight
属性。
问题是,如果在发生布局更新之前将对象分配给ItemsSource
,则ActualWidth
和ActualHeight
为0。
如何在响应属性更改事件之前确保布局更新,同时仍允许在布局更新发生之前更改属性?
答案 0 :(得分:1)
这就是你要找的东西 - UpdateLayout()
这是在UIElement上定义的函数,但不推荐频繁使用,因为它会导致布局传递。
答案 1 :(得分:0)
我后来才意识到,每次我的数据源发生变化时,我实际上并不需要重建行和列。相反,我在UserControl上处理SizeChanged
事件并在那里执行大小计算。当控件首次显示时,该事件似乎会触发,因此它有机会进行初始计算而无需任何额外的努力。