diff --git a/Perspex.Controls/DataTemplate.cs b/Perspex.Controls/DataTemplate.cs index ab674b53ed..85d2d12a46 100644 --- a/Perspex.Controls/DataTemplate.cs +++ b/Perspex.Controls/DataTemplate.cs @@ -12,7 +12,7 @@ namespace Perspex.Controls public class DataTemplate : IDataTemplate { public static readonly DataTemplate Default = - new DataTemplate(typeof(object), o => new TextBlock { Text = o.ToString() }); + new DataTemplate(typeof(object), o => (o != null) ? new TextBlock { Text = o.ToString() } : null); public DataTemplate(Func build) : this(o => true, build) @@ -39,7 +39,9 @@ namespace Perspex.Controls public static bool IsInstance(object o, Type t) { - return t.GetTypeInfo().IsAssignableFrom(o.GetType().GetTypeInfo()); + return (o != null) ? + t.GetTypeInfo().IsAssignableFrom(o.GetType().GetTypeInfo()) : + false; } bool IDataTemplate.Match(object data) diff --git a/Perspex.Controls/Templates/DataTemplateExtensions.cs b/Perspex.Controls/Templates/DataTemplateExtensions.cs index 374d1971ff..9d4575e3db 100644 --- a/Perspex.Controls/Templates/DataTemplateExtensions.cs +++ b/Perspex.Controls/Templates/DataTemplateExtensions.cs @@ -20,7 +20,11 @@ namespace Perspex.Controls.Templates if (template != null) { result = template.Build(data); - result.DataContext = data; + + if (result != null) + { + result.DataContext = data; + } } else if (data is Control) {