Вы можете сделать это полностью в Xaml
<ComboBox IsTextSearchEnabled="True" IsEditable="True"
ItemsSource="{Binding MyObjectCollection}"
TextSearch.TextPath="MyObjectName">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding MyObjectName}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
Положительным моментом является то, что вы можете определять и изменять это так, как вы хотите, в своем XAML без какого-либо кода. Вы связываете ItemsSource с вашей коллекцией объектов, а затем задаете путь, на котором будет основываться ваш поиск, с TextSearch.TextPath. Затем в вашем пользовательском ItemTemplate вы можете связать TextBlock с чем-то еще, кроме метода ToString объекта.