我正在创建一个使用以下标记的自定义WPF控件:
<custom:FilterPanel
Grid.Row="1"
FilterTarget="{Binding Path=MyItems}">
<custom:FilterParameter
ParameterName="Name"
TargetProperty="Name" />
<custom:FilterParameter
ParameterName="Date"
TargetProperty="MyDate" />
</custom:FilterPanel>
我已将FilterPanel的ContentProperty设置为FilterParameters,这显然是我使用上面的标记添加项目的FilterParameter对象的集合。我的问题是,ContentProperty的元素何时实际处理,以便创建实例并将项目实际添加到基础集合中?
我有兴趣与其子控件共享父控件的数据源,WPF生命周期中是否有任何意义我可以覆盖此行为并为创建此FilterParameters集合添加自定义逻辑?
答案 0 :(得分:1)
假设你的类派生自Panel
,那么Panel的生命周期中你可以看到孩子的第一点(即像你的例子那样在XAML中被贴死的孩子 - 而不是通过绑定生成的孩子){{1}您可以在派生类中重写的虚方法。特别是在Panel.EndInit()
和BeginInit
方法之间创建的chldren。