Search code examples
xmlparentadd-inxamarin-studio

Xamarin Studio addin set parent File in TemplateFiles


I am creating a set of Template Files for Xamarin Studio. Once run everything works as expected. However it does not "parent" the files like this,

Parented files

Is there any way I can make it so it parent's the .xaml.cs onto the .xaml file? Here is the TemplateFiles section of my xft file.

    <TemplateFiles>
         <File DefaultExtension=".xaml.cs" DefaultName="Test" AddStandardHeader="True"><![CDATA[using Xamarin.Forms;

namespace ${Namespace}
{
    public partial class ${Name} : ContentPage
    {
        public ${Name}()
        {
            InitializeComponent();
        }
    }
}
]]>
        </File>

         <File DefaultExtension=".xaml" DefaultName="Test" AddStandardHeader="True"><![CDATA[<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="${Namespace}.${Name}">
    <Label Text="{Binding MainText}" VerticalOptions="Center" HorizontalOptions="Center" />
</ContentPage>
]]>
        </File>
    </TemplateFiles>

Solution

  • After finding out where the default xft files are located I was able to look into an example, the solution was pretty obvious,

    You place the File in the parent File node.

    <TemplateFiles>
        <File name="${Name}.xaml" 
              DefaultExtension=".xaml" 
              AddStandardHeader="False" 
              BuildAction="EmbeddedResource"
              CustomTool="MSBuild:UpdateDesignTimeXaml"
              src="../Templates/Core/ContentPage.xaml"/>
        <File name="${Name}.xaml.cs" 
              DependsOn="${Name}.xaml" 
              AddStandardHeader="True"
              src="../Templates/Core/ContentPage.xaml.cs"/>
    </TemplateFiles>