मेरे पास एक ऐसा एप्लिकेशन है जहां आप ListBox में विभिन्न ऑब्जेक्ट्स के बीच चयन कर सकते हैं। जब आप कोई ऑब्जेक्ट चुनते हैं, तो यह नियंत्रण के लिए व्यूमोडेल बदल देता है। नियंत्रण कोडप्लेक्स से टाइमलाइन नियंत्रण का उपयोग करता है, और इसके कारण, मेरे पास ViewModel से जुड़े टाइमलाइन डेटा के लिए स्टार्टडेट और एंडडेट है। जब ViewModel बाहर बदल गया है, मैं कभी कभी कोई त्रुटि मिलती है:OnPropertyChange फायरिंग ऑर्डर
ArgumentOutOfRangeException: MaxDateTime cannot be less then MinDateTime
यह केवल तब होता है जब मैं पहले के एक तारीख को एक बाद की तारीख से जाना। मुझे पूरा यकीन है कि गुणों को स्वचालित रूप से दृश्य में अपडेट करने के तरीके के कारण है। यह प्रासंगिक एक्सएएमएल है। इस समस्या को हल एक तरह से
private int myObjectIndex;
public int MyObjectIndex
{
get { return myObjectIndex; }
set { myObjectIndex = value; OnPropertyChanged("MyObjectIndex"); MyObject = MyObjects[myObjectIndex]; }
}
private MyObjectViewModel myObject=new MyObjectViewModel();
public MyObjectViewModel MyObject {
get { return myObject; }
set
{
myObject= value;
OnPropertyChanged("MyObject");
}
}
वहाँ है:
MaxDateTime="{Binding Path=RecordingEnd}"
MinDateTime="{Binding Path=RecordingStart}"
CurrentDateTime="{Binding Path=CurrentDateTime, Mode=TwoWay}"
ViewModel इस है? क्या WPF को बताने का कोई तरीका है जो ऑब्जेक्ट के भीतर पैरामीटर को अपडेट किया जाना चाहिए?
अद्यतन: मैं @ colinsmith की प्रतिक्रिया का एक परिवर्तन का उपयोग कर समाप्त हो गया:
public MyObjectViewModel MyObject {
get { return myObject; }
set
{
myObject= new MyObjectViewModel();
OnPropertyChanged("MyObject");
myObject= value;
OnPropertyChanged("MyObject");
}
}
मैं तीन परिभाषाएँ कि क्रम में नहीं हैं यह सोचते हैं रहा हूँ? और क्या आप स्पष्टीकरण दे सकते हैं "जब व्यूमोडेल बदल जाता है" तो आपका क्या मतलब है "बदल गया"? –
जब आप यूआई से कोई आइटम चुनते हैं तो यह ऑब्जेक्ट का कारण बनता है और अपडेट करता है? – Paparazzi
जिज्ञासा से बाहर, क्या आप ऑर्डर को बदलने की कोशिश कर सकते हैं जो आपने प्रॉपर्टी को CurrentDateTime = MinDateTime = MaxDateTime = पर सेट कर दिया है ... ऑर्डर शायद मायने रखता है ... यानी। आपकी तिथि सीमा विभिन्न मॉडलों पर अलग होती है .... जब मॉडल डेटा गुणों में सेट होता है ... आपको उन्हें वैध होने की आवश्यकता होती है जब यह गुणों को अपडेट कर रहा है उदा। CurrentDateTime को न्यूनतम/अधिकतम सीमा में होना आवश्यक है .... और अधिकतम दिमागी समय –