<?xml version="1.0" encoding="utf-8"?>

<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <CodeSnippet Format="1.0.0">
    <Header>
      <SnippetTypes>
        <SnippetType>Expansion</SnippetType>
      </SnippetTypes>
      <Title>Template Part generator</Title>
      <Shortcut>tp</Shortcut>
      <Description>
        Template Part generator
      </Description>
      <Author>Gilbert Lee</Author>
    </Header>
    <Snippet>
      <Declarations>
        <Literal Editable="true">
          <ID>TemplatePartName</ID>
          <ToolTip>Name of TemplatePart</ToolTip>
          <Default>TemplatePartName</Default>
          <Function>
          </Function>
        </Literal>
        <Literal Editable="true">
          <ID>type</ID>
          <ToolTip>Type of Parameter</ToolTip>
          <Default>object</Default>
          <Function>
          </Function>
        </Literal>
      </Declarations>
      <Code Language="csharp">
<![CDATA[
        internal const string $TemplatePartName$Name = "$TemplatePartName$";
        internal $type$ $TemplatePartName$;
        
        $end$
        // decorate class with attribute below
        [TemplatePart(Name=$TemplatePartName$Name, Type=typeof($type$))]

        // move below into OnApplyTemplate(...)
        $TemplatePartName$ = this.GetTemplateChild($TemplatePartName$Name) as $type$;

]]>
      </Code>
    </Snippet>
  </CodeSnippet>
</CodeSnippets>


