c# - Is GetTemplateChild Obsolete in .Net 3.5 and what is the difference between FrameWorkTemplate.FindName and ControlTemplate.FindName -
i overrided template of control in resourcedictionary generic.xaml. in added button on wanted add events.
<setter property="template"> <setter.value> --added button here. </setter.value> </setter> so in loaded event of control did
button b = (button)mycontrol.template.findname("partname", mycontrol) //add events on button some on internet read can do
public override void onapplytemplate() { base.onapplytemplate(); uielement editingelement = gettemplatechild("part_editingelement"); if (editingelement != null) { // } } when tried doing suggestion gettemplatechild says not use.

so question
why not use
gettemplatechild. obsolete? andwhat difference between
frameworktemplate.findname,controltemplate.findname?
1.
the difference gettemplatechild return null when:
- no template exists, or
- the named object exists not
dependencyobject(i don't know if possible).
otherwise, code:
this.gettemplatechild(name) is literally equivalent code:
this.template.findname(name, this) i don't know why marked "do not use". notice note existed on msdn page version 3 , removed version 3.5, don't know if means anything.
2.
did mean frameworkelement? jens said, controltemplate inherits frameworktemplate, , both use frameworktemplate.findname method. frameworktemplate.findname , frameworkelement.findname different. frameworkelement.findname looks inside child elements not template, while frameworktemplate.findname looks @ template's own elements not parent element it's applied to.
Comments
Post a Comment