gpt4 book ai didi

WPF IsEditable=true 填充对象的 ComboBox 将 ToString() 显示为所选项目

转载 作者:行者123 更新时间:2023-12-01 18:33:56 30 4
gpt4 key购买 nike

Wpf 组合框允许编辑,如果所有组合框项目都是字符串,或者在它们上定义了 ToString() 方法,那么这很好。

当您选择一个项目时,它会显示为文本,它不使用 DataTemplate,它只是对所选项目调用 ToString()。

我在组合下拉列表中获得了使用我的项目模板格式化的项目列表,当我选择一个项目时,我获得了对象的名称,即 MyNamespace.MyObjectName

一些解决方案已经

  • 使用 ValuePath 绑定(bind)到属性在物体上,但如果你需要您的显示器不只之一这些,运气不好。
  • 实现 ToString() 方法你的对象

还有其他办法吗?

最佳答案

您可以完全在 Xaml 中完成此操作

<ComboBox IsTextSearchEnabled="True" IsEditable="True"
ItemsSource="{Binding MyObjectCollection}"
TextSearch.TextPath="MyObjectName">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding MyObjectName}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>

好处是您可以在 XAML 中根据需要定义和更改此设置,而无需任何代码隐藏。您将 ItemsSource 绑定(bind)到对象集合,然后将搜索的路径设置为 TextSearch.TextPath 。然后,在自定义 ItemTemplate 中,您可以将 TextBlock 绑定(bind)到对象 ToString 方法之外的其他内容。

关于WPF IsEditable=true 填充对象的 ComboBox 将 ToString() 显示为所选项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1844156/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com