wpf - 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>
解决方案
将TextSearch.TextPath
附加属性添加到您的ComboBox
并设置IsTextSearchEnabled
为True
.
<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>
推荐阅读
- javascript - 如何在没有严格模式的情况下运行特定测试或所有内容
- javascript - 如何使用 Firebase 模拟器从单元测试中调用 firebase 函数?
- javascript - Does jQuery selector iterates through all elements?
- c++ - 在 C++ 中,是否有一种编译时方法来检查函数是否具有特定的覆盖?喜欢运算符<
我有一个模板类,我想根据是否
operator<<()
为它专门用于的类型定义了一个版本来改变它的行为。例如,struct HasStreamOp { int i, j; friend ostream & operator<<( ostream &
- laravel - 存储在数据库中时使用方法类型时的 Laravel 错误
- c - 使用 AVL 树在笛卡尔平面上优化搜索的方法
- android - 如何修复 Flutter 中的“错误:无源文件”?
- java - SpringBoot 应用程序中的每个@Service 类是否应该实现一个接口
- javascript - bootstrap vue custom sass 编译但不改变变量
- python - 我开始使用 python 和