Обычно используемый (отвечаемый) подход заключается в использовании PropertyChangedTrigger
из Blend SDK.Однако я не люблю рекомендовать использование других SDK, если нет четкого указания на то, что SDK уже используется.
На данный момент я предполагаю, что он находится в коде, который вы хотите прослушивать дляСобытие ItemsSourceChanged.Техника, которую вы можете использовать, состоит в том, чтобы создать DependencyProperty
в вашем UserControl
и связать его с ItemsSource элемента управления, который вы хотите прослушать.
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.
}
Теперь, когда ваш ListBox
имеетимя "myListBox" вы можете настроить просмотр с: -
Binding b = new Binding("ItemsSource") { Source = myListBox };
SetBinding(ItemsSourceWatcherProperty, b);