У меня есть собственный UserControl для отображения набора совокупных данных для окна, в котором он содержится (список загрузок). . Основные сведения о содержащем окне:
Код: Выделить всё
.
.
.
Код: Выделить всё
public DownloadStatsControl()
{
InitializeComponent();
DataContext = this;
}
[Bindable(true)]
public IEnumerable ItemsSource
{
get => (IEnumerable)GetValue(ItemsSourceProperty);
set
{
if (value == null)
ClearValue(ItemsSourceProperty);
else
SetValue(ItemsSourceProperty, value);
}
}
// Using a DependencyProperty as the backing store for ItemsSource. This enables animation, styling, binding, etc...
public static readonly DependencyProperty ItemsSourceProperty
= DependencyProperty.Register("ItemsSource", typeof(IEnumerable), typeof(DownloadStatsControl),
new FrameworkPropertyMetadata(null, new PropertyChangedCallback(OnItemsSourceChanged)));
private static void OnItemsSourceChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
{
var control = sender as DownloadStatsControl;
control?.OnItemsSourceChanged((FixedSizeQueue)e.OldValue, (FixedSizeQueue)e.NewValue);
}
Код: Выделить всё
Downloads). UserControlПримечание: приведенный выше код отличается от указанного SO. Когда мне не удалось вызвать набор, я обратился к источнику ItemControl и вернул его к основам (т. е. просто использовал IEnumerable).
Что Я здесь пропал?
Редактировать: благодаря связанному ответу, он приблизил меня. Да, мой UserControl использовал себя как DataContext. Однако после внесения изменения в ссылку на родителя он по-прежнему не вызывал установщик. Так продолжалось до тех пор, пока я не поискал еще немного и не наткнулся на привязку WPF к родительскому контексту данных, где у меня были все необходимые фрагменты.
Код: Выделить всё
Подробнее здесь: https://stackoverflow.com/questions/787 ... not-called
Мобильная версия