如何避免在MVVM上下文中等待Silverlight模板化控件初始化

时间:2010-09-28 14:58:31

标签: silverlight mvvm controltemplate

我正在尝试在应用程序中制作和使用模板化控件,但我似乎遇到了计时问题。当我在XAML <local:MyControl>和代码(new MyControl())中使用自定义模板化控件,并在控件上调用试图对Controltemplate中的控件执行某些操作的方法时,模板中的控件是即使在OnApplyTemplate方法之后,几乎总是为null。一种解决方案是使用OnApplyTemplate方法中抛出的事件等待控件初始化,然后让代码对模板中的控件执行某些操作,但这似乎复制了我不应该担心的控件/框架功能约。

所以问题是:

从Themes \ Generic.xaml加载ControlTemplate是否是异步的? 如何在MVVM上下文中使用这些多级模板化控件?

1 个答案:

答案 0 :(得分:0)

在OnApplyTemplate中,您需要使用GetTemplateChild方法来获取控件。有关控件生命周期的说明,请参阅here