ItemsSource
is a dependency property, so it's easy enough to be notified when the property is changed to something else. You would want to use this in addition to code that you have, not instead of:
In Window.Loaded
(or similar) you can subscribe like so:
var dpd = DependencyPropertyDescriptor.FromProperty(ItemsControl.ItemsSourceProperty, typeof(DataGrid));
if (dpd != null)
{
dpd.AddValueChanged(myGrid, ThisIsCalledWhenPropertyIsChanged);
}
And have a change handler:
private void ThisIsCalledWhenPropertyIsChanged(object sender, EventArgs e)
{
}
Whenever the ItemsSource
Property is set, the ThisIsCalledWhenPropertyIsChanged
method is called.
You can use this for any dependency property you want to be notified about changes.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…