2009-05-22 19 views
6

WPF में बाइंडिंग का उपयोग करके पूर्ववत/फिर से प्रदान कैसे करें?WPF बाइंडिंग में पूर्ववत करें

उदा आप बाइंडिंग के साथ एक मास्टर-विवरण दृश्य लागू करते हैं। संपादन के बाद बाध्यकारी का उपयोग कर स्वचालित रूप से सहेजे गए थे। फिर आप परिवर्तनों को पूर्ववत करना चाहते हैं।

क्या WPF के लिए बाध्यकारी में उपयोग करने के लिए कुछ उपयोग है? क्या डब्ल्यूपीएफ कुछ संरचनाओं या इंटरफेस प्रदान करता है?

यह प्रश्न स्टैक का उपयोग करके पूर्ववत/फिर से कार्यान्वित करने के तरीके के बारे में नहीं है।

उत्तर

5

IEditableObject इंटरफ़ेस पर एक नज़र डालें। यह आपको उस ऑब्जेक्ट का एक स्नैपशॉट लेने की अनुमति देता है जो इसे लागू करता है, और फिर आवश्यक होने पर उस स्नैपशॉट पर वापस रोल करें।

+0

क्या WPF IEDitableObject इंटरफ़ेस का उपयोग करता है, यानी इसकी विधियों का आह्वान करता है? –

+0

यह आपके द्वारा उपयोग किए जा रहे विशेष नियंत्रण पर निर्भर करता है। उदाहरण के लिए, एमएस डेटाग्रिड नियंत्रण होगा। –

1

आप किसके लिए डेटाबेसिंग कर रहे हैं?

यदि आप डेटासेट में डेटाबेसिंग कर रहे हैं तो आप DataSet.RejectChanges() विधि का उपयोग करके परिवर्तनों को पूर्ववत कर सकते हैं बशर्ते आपने पहले से ही DataSet.AcceptChanges() को नहीं कहा है।

+0

सामान्य बाध्यकारी के बारे में क्या, उदा। निर्भरता ऑब्जेक्ट, या नियंत्रण-से-नियंत्रण बाध्यकारी से व्युत्पन्न एक वस्तु के लिए? –

+0

जैसा कि केंट कहता है कि यदि वस्तु IEDitableObject लागू करती है तो आप quids हैं लेकिन यदि नहीं, तो आपको इसे मैन्युअल रूप से करने की आवश्यकता है। –

1

आप निगरानी के लिए निगरानी पूर्ववत फ्रेमवर्क पा सकते हैं। http://muf.codeplex.com/

यह "टॉप डाउन" कमांड पैटर्न का उपयोग नहीं करता है, बल्कि इसके बदले में बदलावों की निगरानी करता है और आपको पूर्ववत स्टैक पर एक प्रतिनिधि डालने की अनुमति देता है जो परिवर्तन को उलट देगा।

अपने मामले में, यदि आप अंतर्निहित मॉडल/व्यूमोडेल के लिए बाध्यकारी हैं, तो आप इन परिवर्तनों को कैप्चर करने के लिए ढांचे को हुक कर सकते हैं और फिर आवश्यकतानुसार पूर्ववत/फिर से कर सकते हैं। यदि मॉडल INotifyPropertyChanged लागू करता है और ObservableCollections का उपयोग करता है, तो इसे पूर्ववत/फिर से क्रियाओं सहित मॉडल पर किए गए कार्यों को स्वचालित रूप से प्रतिबिंबित करना चाहिए।

आप कोडप्लेक्स साइट पर http://muf.codeplex.com/ पर अधिक जानकारी और दस्तावेज़ीकरण पा सकते हैं।

संबंधित मुद्दे