का उपयोग कर व्यूमोडेल में बाध्य अवलोकन करने योग्य चयन मान्य करना मैं एमवीवीएम के लिए नया हूं, हाल ही में एमवीवीएम पैटर्न के बाद मेरी पहली परियोजना शुरू की है। मुझे IDataErrorInfo इंटरफ़ेस का उपयोग करके एक अवलोकन करने योग्य चयन को सत्यापित करने का प्रयास करने का कोई समस्या है। मेरे ObservableCollection इस तरह दिखता है:एमवीवीएम पैटर्न
ObservableCollection<Magazine> magazineRepository;
public ObservableCollection<Magazine> MagazineRepository
{
get { return magazineRepository; }
set
{
if (value != null)
{
bladRepository = value;
OnPropertyChanged("MagazineRepository");
}
}
}
और इस तरह मेरे XAML:
<ListBox x:Name="listMagazineRepository"
Grid.ColumnSpan="2"
ItemsSource="{Binding}"
DataContext="{Binding MagazineRepository}"
DisplayMemberPath="Navn"
SelectedItem="{Binding Path=SelectedItem}"/>
<TextBox x:Name="txtName" Grid.Row="1" Grid.Column="0"
Text="{Binding ElementName=listMagazineRepository, Path=SelectedItem.Navn, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}" />
<TextBox x:Name="txtPrice" Grid.Row="2" Grid.Column="0"
Text="{Binding ElementName=listMagazineRepository, Path=SelectedItem.Pris, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}" />
यह सिर्फ एक सरल वस्तुओं युक्त लिस्टबॉक्स है, जब आप किसी आइटम का चयन, चयनित वस्तुओं गुण बक्सें में प्रदर्शित किया जाता है, और उसके बाद सूची बॉक्स ऑब्जेक्ट से जुड़ा हुआ है।
मेरी समस्या यह है कि जब मैं अपना कोड इस तरह सेट करता हूं, तो मेरा डेटा सत्यापित करने का एकमात्र तरीका डोमेन मॉडल में है, जो वास्तव में एक अच्छा अभ्यास नहीं है, मैं चाहता हूं वहां पहुंचने से पहले ViewModel में मान्य करें। असल में मैं MagazineRepository में प्रत्येक प्रॉपर्टी को ViewModel में मान्य करना चाहता हूं, आप इसे करने के बारे में कैसे जाएंगे?
पीएस: यदि मेरे प्रश्न में जानकारी की कमी है तो मैं इस बोर्ड (और सामान्य रूप से प्रोग्रामिंग बोर्ड) पर पोस्ट करने के लिए नया हूं, कृपया मुझे बताएं और मैं आवश्यक विवरण प्रदान करूंगा।
बहुत बहुत धन्यवाद।
वैसे मुझे आपके द्वारा पोस्ट किए गए कोड में एक व्यूमोडेल दिखाई नहीं देता है, लेकिन IDATErrorInfo – Alan
को लागू करने के लिए आपके व्यूमोडेल के लिए सामान्य तरीका होगा क्षमा करें, मैंने सोचा कि यह निहित था।संग्रह मेरे व्यूमोडेल में है, जो वास्तव में IDataErrorInfo को लागू करता है, लेकिन जब टेक्स्टबॉक्स संग्रह में एक संपत्ति बदलता है, तो मुझे उस संपत्ति को सत्यापित करने की आवश्यकता होती है और मैं यह नहीं समझ सकता कि यह वास्तव में कैसे किया जाए। इसलिए संग्रह में किसी संपत्ति के लिए प्रत्येक 2 टेक्स्टबॉक्स हैं, और जब उस संपत्ति में परिवर्तन होता है तो मुझे उस पर सत्यापन करने की आवश्यकता होती है, जिस तरह से मैंने IDataErrorInfo के साथ सीखा है, मैं केवल पूरे संग्रह को मान्य कर सकता हूं। –