Edytowalny ComboBox z powiązaniem z wartością, której nie ma na liście

Mam edytowalny combobox, gdzie nie zawsze preferowany element znajduje się na rozwijanej liście.

Chciałbym mieć możliwość ręcznego wprowadzania tekstu w polu tekstowym, który jest propagowany do łańcucha związanego z SelectedValue.

W tej chwili łańcuch związany z SelectedValue jest aktualizowany tylko wtedy, gdy wprowadzona wartość znajduje się na pozycji ComboBox.

Jak mogę ręcznie wprowadzić wartości niestandardowe niedostępne na liście ComboBox i odpowiednio propagowane do wartości wiązanej?

Author: akjoshi, 2010-09-18

2 answers

Robiłam to wczoraj i dziś i wygląda to następująco:

  1. Ustaw combobox IsEditable="true"

  2. Zamiast wiązania do SelectedItem, bind do Właściwości Text combobox

  3. Jeśli wiążesz się z obiektem niestandardowym, a nie tylko z łańcuchami znaków, musisz również ustawić TextSearch.TextPath="NameOfField". Pozwala to na działanie wyszukiwania tekstu, a także pokazuje tę właściwość w polu tekstowym.

W sumie, skończyłem z czymś like:

<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}" />
 136
Author: John Gardner,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-02 14:40:46

Ustawienie właściwości powiązanie z tekstem Combo również wystarczy.

<ComboBox  IsTextSearchEnabled="True"    IsEditable="True" 
ItemsSource="{Binding Items}" Text="{Binding SelectedItemText, Mode=TwoWay}" />
 28
Author: Rauld,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-27 11:25:53