public class InheritingObjectType : BaseInterface
{
...
public List<BaseInterface> NestedObjects {get;}
};
// other implementing classes
public class SomeSelector : IDataTemplate
{
[Content]
public Dictionary<string, IDataTemplate> Templates { get; private set; } = new();
public IControl Build(object data) =>
Templates[data.GetType().Name].Build(data);
public bool Match(object data)
=> data is BaseInterface && Templates.ContainsKey(data.GetType().Name);
}
public class InheritingObjectType : BaseInterface
{
...
public List<BaseInterface> NestedObjects {get;}
};
// other implementing classes
public class SomeSelector : IDataTemplate
{
[Content]
public Dictionary<string, IDataTemplate> Templates { get; private set; } = new();
public IControl Build(object data) =>
Templates[data.GetType().Name].Build(data);
public bool Match(object data)
=> data is BaseInterface && Templates.ContainsKey(data.GetType().Name);
}