<ComboBox Name="cob" IsEditable="True" StaysOpenOnEdit="True" TextSearch.TextPath="Content.Children[0].Text" > <ComboBoxItem> <StackPanel > <TextBlock Text="1"/> </StackPanel> </ComboBoxItem> <ComboBoxItem> <StackPanel> <TextBlock Text="2"/> </StackPanel> </ComboBoxItem> <ComboBoxItem> <StackPanel > <TextBlock Text="3"/> </StackPanel> </ComboBoxItem> </ComboBox>
由于ComboboxItem的Content是StackPanel所以TextSearch.TextPath=Content.Children[0].Text,如果把ComboboxItem去掉则变成了
<ComboBox Name="cob" IsEditable="True" StaysOpenOnEdit="True" TextSearch.TextPath="Children[0].Text" > <StackPanel > <TextBlock Text="1"/> </StackPanel> <StackPanel> <TextBlock Text="2"/> </StackPanel> <StackPanel > <TextBlock Text="3"/> </StackPanel> </ComboBox>
如果Item的结构变了,使用TextPath就不适用了,可以使用Text来解决:
<ComboBox Name="cob" IsEditable="True" StaysOpenOnEdit="True" > <ComboBoxItem TextSearch.Text="1"> <StackPanel > <TextBlock Text="1"/> </StackPanel> </ComboBoxItem> <ComboBoxItem TextSearch.Text="2"> <StackPanel> <TextBlock Text="2"/> </StackPanel> </ComboBoxItem> <ComboBoxItem TextSearch.Text="3"> <StackPanel > <TextBlock Text="3"/> </StackPanel> </ComboBoxItem> </ComboBox>