Un enfoque comúnmente usado (respondido) es usar el PropertyChangedTrigger
del SDK de Blend. Sin embargo, no me gusta recomendar el uso de otros SDK a menos que haya una indicación clara de que el SDK ya está en uso.
Supongo por el momento que está detrás del código que desea escuchar para un evento "ItemsSourceChanged". Una técnica que puede usar es crear un DependencyProperty
en su UserControl
y vincularlo a ItemsSource del control que desea escuchar.
private static readonly DependencyProperty ItemsSourceWatcherProperty =
DependencyProperty.Register(
"ItemsSourceWatcher",
typeof(object),
typeof(YourPageClass),
new PropertyMetadata(null, OnItemsSourceWatcherPropertyChanged));
private static void OnItemsSourceWatcherPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
YourPageClass source = d As YourPageClass;
if (source != null)
source.OnItemsSourceWatcherPropertyChanged();
}
private void OnItemsSourceWatcherPropertyChanged()
{
// Your code here.
}
Ahora dado que su ListBox
tiene un nombre "myListBox" puede configurar ver con: -
Binding b = new Binding("ItemsSource") { Source = myListBox };
SetBinding(ItemsSourceWatcherProperty, b);
¿En qué condiciones está la fuente de datos del cuadro de lista cambiando? ¿Puedes publicar algún código? –