मेरे पास दो दिनांक फ़ील्ड हैं: स्टार्टडेट और एंडडेट। StartDate EndDate से पहले होना चाहिए।जब उनमें से कोई भी बदलता है तो मैं एकाधिक गुणों को कैसे सत्यापित कर सकता हूं?
यदि उपयोगकर्ता एंडडेट से अधिक कुछ के लिए StartDate को बदलता है, तो उस दिनांकपिकर के चारों ओर एक लाल सीमा दिखाई देती है, और इसके विपरीत। यदि उपयोगकर्ता दूसरे बॉक्स को बदलता है ताकि तिथि सीमा अब सही हो, तो पहले बॉक्स में अभी भी सत्यापन त्रुटि है।
जब मैं इनमें से कोई भी बदलता हूं तो मैं दोनों दिनांक फ़ील्ड को कैसे सत्यापित कर सकता हूं?
मैं IDataErrorInfo
public string GetValidationError(string propertyName)
{
switch (propertyName)
{
case "StartDate":
if (StartDate > EndDate)
s = "Start Date cannot be later than End Date";
break;
case "EndDate":
if (StartDate > EndDate)
s = "End Date cannot be earlier than Start Date";
break;
}
return s;
}
उपयोग कर रहा हूँ क्योंकि मैं दोनों क्षेत्रों को मान्य करने के जब उनमें से या तो, बदलता है तो उन दोनों को होने एक PropertyChange ईवेंट उत्पन्न की जरूरत है मैं बस एक PropertyChange ईवेंट उत्पन्न नहीं कर सकते क्योंकि एक अनंत लूप में फंस जाएगा।
मुझे दिनांक फ़ील्ड को समाशोधन करने का विचार भी पसंद नहीं है यदि दूसरी तारीख सत्यापन त्रुटि लौटाती है।
बस वहां एक वैकल्पिक दृष्टिकोण फेंकने के लिए, क्या आप नियम तोड़ने पर दोनों बक्से लाल कर सकते हैं? यदि ऐसा है तो आपको केवल एक संपत्ति बदलना होगा। – Josh
@ जोश प्यार करेंगे, लेकिन मुझे नहीं पता कि अलग-अलग गुणों के लिए सत्यापन ईवेंट मैन्युअल रूप से कैसे बढ़ाया जाए – Rachel
मैंने प्रमाणीकरण ईवेंट का उपयोग करना छोड़ दिया।मेरे पास उनके साथ बहुत सारे मुद्दे हैं जहां मुझे लगता है कि उन्हें आग लगनी चाहिए और वे आग नहीं करते हैं या वे सीमा नहीं उजागर करते हैं। मैं एक लाल बॉर्डर शैली का उपयोग वैध के एक बुलियन प्रतिनिधित्व के लिए बाध्य है। मैं एक संदेश संपत्ति में टूलटिप भी बांधता हूं। फिर जब कोई मान बदलता है तो मैं इसे मान्य करता हूं और गुणों को उचित रूप से सेट करता हूं। – Josh