2011-02-17 14 views

答えて

3

ContentControlにContentControl.Contentプロパティを介して結合している単一の子供が含まれています。 ContentControl.OnContentChangedをフックすると、このプロパティの値がいつ更新されるかを検出できます。

1

もっともきれいな方法は、それらのコントロールから派生し、興味のある変更を報告するメソッドをオーバーライドすることです。たとえば、ContentControlから派生し、OnContentChangedを実装します。このアプローチはあなたを魅了しないかもしれません。

コントロールから派生することなくコントロールの子または子の変更を検出する場合は、そのような変更がレイアウトに影響し、LayoutUpdatedイベントをフックできることがわかります。このアプローチの問題点は、変更を探してChildまたはChildrenを調べて、以前に追加した子供を追跡する必要があることです。あなたはまた、メモリリークを作成しないように、元の子供への言及にぶつからないように注意する必要があります。しかし、それを行うことができます。

関連する問題