मैं एक WPF एप्लिकेशन बना रहा हूं जो कस्टम "अगला" और "बैक" बटन और कमांड (यानी NavigationWindow
का उपयोग नहीं कर रहा है) के माध्यम से नेविगेट करने योग्य है। एक स्क्रीन पर, मेरे पास ListBox
है जिसे एकाधिक चयनों का समर्थन करना है (Extended
मोड का उपयोग करके)। मेरे पास इस स्क्रीन के लिए एक व्यू मॉडल है और चयनित आइटम को एक संपत्ति के रूप में स्टोर करें, क्योंकि उन्हें बनाए रखने की आवश्यकता है।सूची बॉक्स का चयन कैसे करें IVVM के साथ बाध्यकारी एक नेविगेशन अनुप्रयोग
हालांकि, मुझे पता है कि SelectedItems
ListBox
की संपत्ति केवल पढ़ने योग्य है। मैं this solution here का उपयोग कर इस मुद्दे के आसपास काम करने की कोशिश कर रहा हूं, लेकिन मैं इसे अपने कार्यान्वयन में अपनाने में सक्षम नहीं हूं। मैंने पाया कि जब मैं एक या अधिक तत्वों को अचयनित करता हूं और जब मैं स्क्रीन के बीच नेविगेट करता हूं तो मैं अलग-अलग नहीं हो सकता (NotifyCollectionChangedAction.Remove
दोनों मामलों में उठाया जाता है, क्योंकि तकनीकी रूप से सभी चयनित आइटम स्क्रीन से दूर नेविगेट करते समय अचयनित होते हैं)। मेरे नेविगेशन कमांड एक अलग दृश्य मॉडल में स्थित हैं जो प्रत्येक स्क्रीन के लिए दृश्य मॉडल प्रबंधित करता है, इसलिए मैं दृश्य मॉडल से संबंधित ListBox
के साथ कोई कार्यान्वयन नहीं कर सकता।
मुझे कई अन्य कम सुरुचिपूर्ण समाधान मिल गए हैं, लेकिन इनमें से कोई भी दृश्य मॉडल और दृश्य के बीच दो-तरफा बाध्यकारी प्रथा प्रतीत नहीं होता है।
किसी भी मदद की सराहना की जाएगी। अगर मैं अपनी समस्या को समझने में मदद करता हूं तो मैं अपना कुछ स्रोत कोड प्रदान कर सकता हूं।
आह, मैं देखता हूं, आप पहले से ही एक व्यवहार का उपयोग करने का प्रयास कर रहे हैं। चयनित वस्तुओं के लिए एक बाइंडेबल कोलेक्शन का उपयोग करें, इसे काम करना चाहिए। यदि आपको और समस्याएं हैं, तो बस मुझे बताएं। उनका वर्णन करें और हम एक नज़र डालेंगे। –
कृपया कुछ कोड दिखाएं, खासकर चयनित इटम्स और एक्सएएमएल। क्या चुना गया एक संपत्ति है? उस व्यवहार पर संदेह करें जब चयनित इटम्स केवल बाइंडबल कोलेक्शन का सार्वजनिक सदस्य था, संपत्ति नहीं। –
आह, मुझे एहसास नहीं हुआ कि संपत्ति को स्पष्ट रूप से 'चयनित इटम्स' कहा जाना था (मेरा 'चयनित भाषाएं' कहा जाता था)। अब जब मैं 'RaisePropertyChangedEventHandler'' के साथ प्रेषक लाइन पर "बैक" बटन पर क्लिक करता हूं, तो मुझे 'बाइंडेबल कोलेक्शन' कन्स्ट्रक्टर में फेंक दिया गया 'अमान्यऑपरेशन अपवाद' मिलता है। मैंने कैच ब्लॉक में 'डिस्पैचर.बिनजिन इनवोक' के साथ एक कोशिश/पकड़ ब्लॉक डालने की कोशिश की, लेकिन तब पृष्ठ को फिर से चुना नहीं जाता है जब पृष्ठ पर नेविगेट किया जाता है। – Casey