public override DataTemplate SelectTemplate(object item, DependencyObject container) => item == null ? null : this.Templates.Where(template => template.DataType as Type == item.GetType()).FirstOrDefault();