Вот другой способ сделать это в XAML. Важной частью является TextSearch.TextPath. Это будет искать объект с указанным именем. В данном случае это строка с именем «Foo».
<ComboBox Name="cmbBox" ItemsSource="{Binding Test}" Height="25" IsEditable="True" IsReadOnly="True" TextSearch.TextPath="Foo">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" TextSearch.Text="{Binding Path=Bar}">
<TextBlock Text="{Binding Path=Foo}"/>
<TextBlock Text="{Binding Path=Bar}" Margin="10 0"/>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
Для программной установки TextSearch все, что вам нужно сделать, это:
cmbBox.SetValue(TextSearch.TextPathProperty, "Foo");