Creating Data Templates in Code

Avalonia also supports creating data templates in code with the FuncDataTemplate<T> class.

At its simplest you can create a data template by passing a lambda which accepts an instance to the FuncDataTemplate<T> constructor:

var template = new FuncDataTemplate<Student>(x =>
    new TextBlock
    {
        Text = new Binding("FirstName"),
    });

Is equivalent to:

<DataTemplate DataType="{x:Type local:Student}">
    <TextBlock Text="{Binding FirstName}"/>
</DataTemplate>