WPF/Silverlight Autocompletebox مع القدرة على إضافة قيم جديدة إلى القائمة
-
01-10-2019 - |
سؤال
أرغب في استخدام AutoCompleteBox مع قائمة بالقيم ، ولكن أيضًا إضافة قيم جديدة إلى القائمة إذا كان المستخدم يدخل واحدة غير موجودة.
لدي حاليا خاصية سلسلة في نموذج العرض الخاص بي بعنوان "التعليق". حاليًا يرتبط هذا مربع نص في العرض - يقوم المستخدم بتكوين تعليق ويتم تحديث نموذج العرض. بسيط.
لتوفير الوقت ، يرغب عميلي في الإكمال التلقائي من القيم السابقة ، وبالتالي فإن الطريقة التي فكرت بها في القيام بذلك هي شيء مثل:
ViewModel
public string Comment;
public ObservableCollection<string> CommentsList { ... }
(ملء قائمة Comments عند إنشاء ViewModel)
رأي
<AutoCompleteComboBox ItemsSource="{Binding CommentsList}" SelectedItem="{Binding Comment, Mode=TwoWay/>
لذلك عندما يحدد المستخدم قيمة ، فإنه يحفظ القيمة في خاصية التعليق. يعمل هذا بشكل جيد إذا قام المستخدم بتحديد عنصر في القائمة ، ولكن إذا كان المستخدم في قيمة جديدة ، فإن خاصية التعليق لم يتم تحديثها (إنها خالية لأن العنصر المحدد لم يكن في القائمة).
هل هذا ممكن مع CompleteBox؟
شكرا مقدما ، سوف
المحلول
وجدت الحل ...
كنت بحاجة لاستخدام خاصية النص ، وليس المحدد.
نصيحتوي على النص الحالي الذي أدخله المستخدم أو تحديده.
العنصر المحددهو لاغ إذا لم يتم اختيار عنصر حاليا. إذا كان المستخدم يتنقل عبر المنسدلة أو تحديد العناصر أو النقرات على عنصر ما ، فسيتم تحديث ذلك إلى هذا العنصر.
نرى:
http://www.jeff.wilcox.name/2008/10/introducing-autocompletebox/