.net تحرير ComboBox مع الربط بقيمة لا في القائمة




wpf editing (2)

لدي combobox قابل للتحرير ، حيث لا يكون العنصر المفضل دائمًا في القائمة المنسدلة.

أرغب في الحصول على إمكانية إدخال نص يدوياً في مربع النص الذي يتم نشره في السلسلة المرتبطة بـ SelectedValue.

الآن يتم تحديث السلسلة المنضمة إلى SelectedValue فقط إذا كانت القيمة المدخلة على تلك الموجودة في عناصر ComboBox.

كيف أسمح بالقيم المخصصة غير المتوفرة في قائمة ComboBox ليتم إدخالها يدويًا ونشرها بشكل صحيح إلى القيمة المنضمة؟

https://code.i-harness.com


سيكفي إعداد الربط خاصية Text من Combo أيضاً.

<ComboBox  IsTextSearchEnabled="True"    IsEditable="True" 
ItemsSource="{Binding Items}" Text="{Binding SelectedItemText, Mode=TwoWay}" />

كنت أفعل هذا بالأمس واليوم ويبدو الأمر كما يلي:

  1. ضبط combobox IsEditable="true"

  2. بدلاً من ربط SelectedItem ، ربط خاصية Text لـ combobox

  3. إذا كنت ملزمًا بكائن مخصص بدلاً من سلاسل فقط ، فستحتاج أيضًا إلى تعيين 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}" />




editing