【问题标题】:Set arbitrary value of WPF ComboBox which bound to dictionary设置绑定到字典的 WPF ComboBox 的任意值
【发布时间】:2019-07-18 08:29:00
【问题描述】:

我有一个使用绑定到字典的可编辑组合框:

<ComboBox IsEditable="True" ItemsSource="{Binding MyDict}" DisplayMemberPath="Value" SelectedValuePath="Value" SelectedValue="{Binding MyProp}" />

有时我需要在代码中为属性 MyProp 设置一些不同的值,这些值没有出现在字典中。在这种情况下,ComboBox 不会显示该值。

这种情况下ComboBox能显示任意值怎么办?

【问题讨论】:

    标签: wpf combobox binding


    【解决方案1】:

    ComboBox 不能选择任意值。它只能选择存在于其ItemsItemsSource 集合中的值或项。

    因此,您必须先向MyDict 添加一个条目,然后才能选择它。您可以将ComboBoxText 属性设置为随机的string,但这不会选择任何项目并设置MyProp 属性。

    【讨论】:

    • 好吧,这是个主意!我只是添加到 ComboBox Text={Binding MyProp, Converter={StaticResource str2intConverter}} ,这正是我需要的。这里 str2intConverter 是一个简单的转换器,它将字符串转换为整数并返回,如果传递的字符串为空,则转换器返回 Null。在这种情况下,属性由输入文本正确设置。并且显示的值与后面设置的代码相同。谢谢!
    • 差点忘了:字典保存整数值,这就是为什么转换器是字符串到整数。
    猜你喜欢
    • 2013-05-31
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    • 1970-01-01
    • 2014-05-25
    • 2018-12-10
    • 2010-10-24
    相关资源
    最近更新 更多