首页 > 解决方案 > WPF 组合框 - 使用 ItemTemplate 连接时跳转到键入的字符

问题描述

使用 DisplayMemberPath 时,它按预期工作 - 它跳转到键入的字符,但在以下情况下,我需要连接两个字段,姓氏和姓名,并想跳转到姓氏,但它不起作用。有人知道解决方案吗?这是示例:

<ComboBox ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=DataContext.AllDoctors}" SelectedValue="{Binding Path=Doctor.Id}" SelectedValuePath="Id" >
                                <ComboBox.ItemTemplate>
                                    <DataTemplate>
                                        <TextBlock>
                                            <TextBlock.Text>
                                                <MultiBinding StringFormat="{}{0} {1}">
                                                    <Binding Path="Surname"/>
                                                    <Binding Path="Name"/>
                                                </MultiBinding>
                                            </TextBlock.Text>
                                        </TextBlock>
                                    </DataTemplate>
                                </ComboBox.ItemTemplate>                                
                            </ComboBox>

标签: wpfcombobox

解决方案


TextSearch.TextPath附加属性添加到您的ComboBox并设置IsTextSearchEnabledTrue.

<ComboBox IsTextSearchEnabled="True" TextSearch.TextPath="Surname" ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=DataContext.AllDoctors}" SelectedValue="{Binding Path=Doctor.Id}" SelectedValuePath="Id" >
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <TextBlock>
                <TextBlock.Text>
                    <MultiBinding StringFormat="{}{0} {1}">
                        <Binding Path="Surname"/>
                        <Binding Path="Name"/>
                    </MultiBinding>
                </TextBlock.Text>
            </TextBlock>
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>

推荐阅读