小智 6
不知道你为什么要这样做,但我想你可以扩展Grid面板并覆盖OnVisualChildrenChanged protected方法来引发一个事件:
public class ObservableGrid : Grid
{
protected override void OnVisualChildrenChanged(DependencyObject visualAdded, DependencyObject visualRemoved)
{
base.OnVisualChildrenChanged(visualAdded, visualRemoved);
if (VisualChildrenChanged != null)
VisualChildrenChanged(this, new VisualChildrenChangedEventArgs(visualAdded, visualRemoved));
}
public event EventHandler<VisualChildrenChangedEventArgs> VisualChildrenChanged;
}
public class VisualChildrenChangedEventArgs : EventArgs
{
public VisualChildrenChangedEventArgs(DependencyObject visualAdded, DependencyObject visualRemoved)
{
VisualAdded = visualAdded;
VisualRemoved = visualRemoved;
}
public DependencyObject VisualAdded { get; private set; }
public DependencyObject VisualRemoved { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)