Как избежать ожидания инициализации шаблонного элемента управления Silverlight в контексте MVVM - PullRequest
0 голосов
/ 28 сентября 2010

Я пытаюсь создавать и использовать шаблонные элементы управления в приложении, но мне кажется, что я сталкиваюсь с проблемами синхронизации. Когда я использую пользовательский шаблонный элемент управления в XAML <local:MyControl> и с помощью кода (new MyControl ()) и вызываю метод для элемента управления, который пытается что-то сделать с элементом управления в Controltemplate, элемент управления в шаблоне почти всегда null даже после метода OnApplyTemplate. Одно из решений - дождаться инициализации элемента управления, используя событие, выброшенное в методе OnApplyTemplate, и затем позволить коду сделать что-то с элементами управления в шаблоне, но это похоже на репликацию функций элемента управления / инфраструктуры, о которых мне не нужно беспокоиться о.

Итак, вопросы:

Является ли загрузка ControlTemplate из Themes \ Generic.xaml асинхронной? Как использовать эти многоуровневые шаблонные элементы управления в контексте MVVM?

1 Ответ

0 голосов
/ 28 сентября 2010

В OnApplyTemplate вам нужно использовать метод GetTemplateChild, чтобы получить доступ к элементам управления. См. здесь для описания жизненного цикла элемента управления.

...