سؤال

نحن نستخدم BusinessObjects ، التنفيذ IDataErrorInfo و IEditableObject. BindingListيتم إضافة S مع هذه الكائنات إلى Bindingsources ، وتستخدم تلك لربط UserControls و DataGrids على النماذج (WinForms). ال BindingSource يتم تعيينه بالإضافة إلى ذلك كمصاعد بيانات إلى ErrorProvider النموذج.

نحن نستخدم مربعات النص حاليًا لخصائص Type Int و Short. يتم التحقق من صحة داخل BusinessObjects مع التحقق المخصص ، مثل القيم Min/Max ، وما إلى ذلك ، والتي تعمل بشكل جيد ، نظرًا لأن رسائل الخطأ تشكل عمليات التحقق المخصصة لدينا تظهر بشكل جيد بجوار مربع النص.

ومع ذلك ، إذا كانت الإدخال أكبر من قيمة int (على سبيل المثال "99999999999") ، فإن Bindingsource لا يحاول حتى إدخال هذه القيمة في BusinesObject ولكن بدلاً من ذلك يعطي الخاطئة إلى errorprovider مثل "القيمة لـ int32 كانت كبيرة جدًا . ". لا نريد أن نزعج مستخدمينا بـ "int32" ولكننا نريد خاطئًا مخصصًا لذلك.

من الجيد أن يوفر Bindingsource هذه الميزة ، ولكن هل من الممكن توفير رسائل خطأ مخصصة لهذا؟

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

المحلول

تحتاج إلى ضبط تنسيق خاصية لخطأ لتعطيل سلوك معالجة الأخطاء.

مثله:

textBox1.DataBindings.Add("Text", bindingSource1, "IntValue", false, 
    System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top