OnApplyTemplate
вызывается, когда ControlTemplate
применяется к элементу управления, который переопределяет метод (ни его родительский, ни дочерний).Если OnApplyTemplate
введено один раз, переопределение также должно быть создано один раз.Я имею в виду, у вас просто есть один экземпляр главной страницы .Это не должно быть неожиданным.
Говоря о Popup
s и DataContext
, часто возникают проблемы с привязками от Popup
к нему.Таким образом, я бы предпочел написать некоторый код для предоставления правильного контекста Popup
с, а не полагаться на Binding
с.Конечно, существует проблема отсутствия события DataContextChanged до SL5.Чтобы обойти это, вы должны определить свой пользовательский DependencyProperty
на вашем CustomComboBox
, привязать его к контексту CustomComboBox
и присвоить его значение Popup
в PropertyChangedCallback
.