Коротким ответом является DataTemplate, не поддерживают интерфейсы (думайте о множественном наследовании, явном v. неявный, и т.д.). Путем мы склонны двигаться, это должно иметь базовый класс, который вещи расширяют для разрешения специализации/обобщения DataTemplate. Это означает достойное, но не обязательно оптимальное, решение было бы:
public abstract class SomeClassBase
{
}
public class SomeClass : SomeClassBase
{
}
<DataTemplate DataType="{x:Type local:SomeClassBase}">
<!-- ... -->
</DataTemplate>
Помните, вы можете получить доступ к строке как к массиву в C #.
string str = "hello";
char [] письма = str.ToCharArray ();