我有可编辑的组合框,其中并不总是首选项在下拉列表中。可编辑ComboBox绑定到值不在列表中
我想有可能在传播到绑定到SelectedValue的字符串的文本框中手动输入文本。
现在,绑定到SelectedValue的字符串仅在输入的值位于ComboBox项目中的值上时更新。
如何允许手动输入ComboBox列表中不可用的自定义值并将其正确传播到绑定值?
我有可编辑的组合框,其中并不总是首选项在下拉列表中。可编辑ComboBox绑定到值不在列表中
我想有可能在传播到绑定到SelectedValue的字符串的文本框中手动输入文本。
现在,绑定到SelectedValue的字符串仅在输入的值位于ComboBox项目中的值上时更新。
如何允许手动输入ComboBox列表中不可用的自定义值并将其正确传播到绑定值?
我只是在做这个,昨天和今天,它看起来像如下:
设置组合框IsEditable="true"
而是结合SelectedItem
的,绑定到ComboBox
Text
财产如果你绑定了一个自定义对象而不是字符串,你还需要设置TextSearch.TextPath="NameOfField"
。这可以让文本搜索行为起作用,并且还可以在文本框中显示该属性。
所有的一切,我结束了类似:
<ComboBox x:Name="c"
IsEditable="True"
IsTextSearchEnabled="True"
IsTextSearchCaseSensitive="False"
StaysOpenOnEdit="True"
Text="{Binding NameOnViewModel}"
TextSearch.TextPath="NameOnChildItems"
ItemsSource="{Binding Items}"
ItemTemplate="{StaticResource DataTemplate}" />
<TextBlock Text="{Binding ElementName=c,Path=Text}" />
设置绑定到文本组合的性能就足够了为好。
<ComboBox IsTextSearchEnabled="True" IsEditable="True"
ItemsSource="{Binding Items}" Text="{Binding SelectedItemText, Mode=TwoWay}" />
完美找到绑定到一个字符串列表。 – 2012-05-08 09:15:21
哦,如果你不使用ItemTemplate,你可以使用DisplayMemberPath =“Name”而不是使用DataTemplate。 – 2010-11-16 23:52:00
太棒了!它也适用于数字 – Roberto 2012-08-20 13:59:43