Сделайте, чтобы "Человек" реализовал своего рода интерфейс IDeletable, затем заставил команду посещать любой базовый урок или соединить интерфейсом с Вашим использованием объектов. Тем путем можно сделать DeleteCommand, который пытается бросить объект к IDeletable, и если это работает, назовите.Delete
public class DeleteCommand : ICommand
{
public void Execute(Entity entity)
{
IDeletable del = entity as IDeletable;
if (del != null) del.Delete();
}
}
Вы можете найти его в WPF Toolkit , который также доступен через NuGet.
В этой статье показано, как создать текстовое поле, которое может автоматически предлагать элементы на время выполнения на основе входных данных, в данном случае папок на диске. Текстовое поле WPF AutoComplete Folder
Также взгляните на это красивое Многоразовое текстовое поле WPF Autocomplete , оно мне очень пригодилось.