从控件和数据模板获取WPF模板化项目

时间:2010-02-12 04:39:09

标签: wpf templates controls

如何从绑定到控件模板或数据模板的控件中获取命名控件?

我试过FindName它不起作用。 我不想使用VisualTreeHelper,因为你必须单独遍历每个父子项。

1 个答案:

答案 0 :(得分:1)

这取决于你何时这样做。如果你在构造函数中执行它,它将无法工作,因为元素仅在应用模板后才存在。

如果您创建控件,这是执行此操作的标准方法:

 public override void OnApplyTemplate() {
    //i call the base first
    base.OnApplyTemplate();
    //then go looking for the newly created elements         
    TextBox textBox = this.Template.FindName("PART_TextBox", this) as TextBox;
 }