wpf组合框项目模板,用于选定的值和搜索功能

时间:2012-04-18 13:49:05

标签: wpf combobox

我在我的应用程序中使用了一个组合框,我用这样的类填充它:

namespace Foo.Bar{
     public class Item
     {
          public string lastName;
          public string firstName;
          public Foo theMeatyPart;
     }
}

我可以使用itemTamplate使用“lastName,firstName”填充下拉列表,但随后所选的值显示为“Foo.Bar.Item”。如何将相同的模板应用于selectedItem,并且搜索功能是否可以在不覆盖Item的ToString方法的情况下工作?

这是xaml:

<Style x:Key="SearchComboStyle" TargetType="ComboBox">
                <Style.Setters>
                    <Setter Property="Width" Value="150"></Setter>
                </Style.Setters>
            </Style>
            <DataTemplate x:Key="SearchComboItemTemplate" >
                    <TextBlock DataContext="{Binding}">
                            <TextBlock.Text>
                              <MultiBinding StringFormat="{}{0}, {1}">
                                <Binding Path="lastName"/>
                                <Binding Path="firstName"/>
                              </MultiBinding>
                            </TextBlock.Text>
                    </TextBlock>
            </DataTemplate>


<ComboBox  ItemTemplate="{StaticResource SearchComboItemTemplate}" Style="{StaticResource SearchComboStyle}" 
                    ItemsSource="{Binding Path=PhysiciansList, RelativeSource={RelativeSource AncestorType=local:ExamViewerControl, AncestorLevel=1}}"      IsTextSearchEnabled="True" IsTextSearchCaseSensitive="False" IsEditable="True" TextSearch.TextPath="Person.LastName" />         

1 个答案:

答案 0 :(得分:2)

UPD:看起来你需要设置SelectionBoxItemTemplate

您可以使用DisplayMemberPathTextSearch.TextPath启用搜索,而无需修改ToString()。