0

我正在创建一个使用以下标记的自定义 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 集合的创建中?

4

1 回答 1

1

假设您的类派生自Panel,那么在面板生命周期中您可以看到子项(即像您的示例一样在 XAML 中贴花的子项 - 不是通过绑定生成的子项)的第一个点是Panel.EndInit(),您可以在派生类中覆盖的虚拟方法。BeginInit特别是在and方法之间创建的 chldren EndInit

于 2012-07-02T14:17:16.777 回答