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具体的には、 メソッドとメソッドの間で作成された chldren ですEndInit

于 2012-07-02T14:17:16.777 に答える