سؤال

لقد قمت بتسجيل الدخول للتو مع Microsoft Connect، لكنني أتساءل ما إذا كان أي شخص آخر قد صادفه ووجد إصلاحا. جوجل لا تظهر الكثير ...

تكرار بسيط:

  • يحتوي التطبيق على مربع نص WPF مع مجموعة MaxLength
  • استخدم لوحة إدخال TableTPC لكتابة نص أكثر مما سمح
  • اضغط على "إدراج" على لوحة TableTPC وتعطل التطبيق

ما بعد تغيير سلوك طلبي لعدم استخدام MaxLength، هل يعرف أحد من الحل؟

(سوف نشر هنا إذا عدت Microsoft مع أي نصيحة.)

تعديل: يجب أن يكون المحدد أنا قيد التشغيل .NET 3.5 و Windows 7.

هل كانت مفيدة؟

المحلول 3

يبدو أنه تم إصلاح هذا في .NET 4.0، ولكن لا توجد خطط لإصلاح 3.5. كان الاقتراح من MS هو التعامل مع الحدث TextChanged لتوفير MaxLength تلقائيا (EW!).

نصائح أخرى

اعتمادا على بنية التطبيق الخاصة بك، إذا كنت تستخدم MVVM، فقد أزيل MaxLength ثم قم بالتحقق من الصحة في كائن ViewModel الخاص بك للتأكد من أن القيمة تطابق الطول الذي تتوقعه.

وإلا فإنني قد استخدم التحقق من صحة الربط مثل ما هو الموصوفة في هذه المقالة.

ليس ما أود استدعاء الأمثل في حالة شيء طوله حقا محدود مثل الرمز البريدي أو رقم هاتف، لكنه يتيح لك استيعاب كل التحقق من الصحة في مكان واحد.

سأكون صادقا، ليس لدي أي خبرة في تفاعلات WPF أو الكمبيوتر اللوحي، لذلك أنا أطلق النار أعمى هنا ولكني إما أن أضرب الهدف أو تعلم شيئا ما :)

من وجهة نظر نظري المبسط، أرى عددا من العمل حولها، كلها تنطوي على إزالة الطول الأقصى:

  1. عند التقديم، اقتطاع السلسلة في VM إذا طويل جدا
  2. عند التقديم، تنبيه المستخدم إلى اقتطاع وتقديم سلسلة مقطوعة مقدما إليهم في مربع النص للتحرير
  3. شنق حدث من نص النص واقتطاع السلسلة "Onchange" مع تنبيه التسمية المجاورة للحقل، مثل خطأ في نموذج الويب.

على أي حال، أتمنى أن تحصل على بعض الردود من بعض الأشخاص الذين يعرفون ما يتحدثون عنه؛)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top