c# - How to set xaml binding properly -


  & lt; TextBlock x: name = "PageTitle" text = "{बाध्यकारी ट्रिप टाइपप्लेमॉडेल। टेस्ट}" / & gt;  

यह मेरा XAML मेरे ViewModel परीक्षण में एक संपत्ति के लिए बाध्य है। कैसे मैं बाध्यकारी ViewModel ऑब्जेक्ट 'tripTypeViewModel' को निर्दिष्ट नहीं करना है क्योंकि मुझे समय-समय पर डेटा संदर्भ को बदलने के लिए प्रोग्रामेटिक रूप से बदलना होगा, तो क्या यह हमेशा अभ्यस्त होगा?

यह पूर्ण परिदृश्य है:

< पूर्व> वर्ग समग्र ViewModel {सार्वजनिक स्थिर ट्रिप्सप्रदर्शनप्रदर्शकप्रदर्शित करेंमॉडेल यात्राएंप्रदर्शनप्रकारउपई मॉडेल {प्राप्त करें; सेट; } सार्वजनिक स्थिर TripTypeViewModel tripTypeViewModel {get; सेट; } स्थिर संमिश्र दृश्यमॉडल () {tripsResponseTypeViewModel = नया TripsResponseTypeViewModel (); TripTypeViewModel = नया TripTypeViewModel (); }}

मेरे Page.xaml में मैं इस तरह डेटा संदर्भ सेट:

  सार्वजनिक MyTripsPage () {this.InitializeComponent (); This.DataContext = नया संमिश्र ViewModel (); }  

तो कभी-कभी मैं ट्रिपप्रयवदृश्य मॉडेल संग्रह या अन्य पर ListBoxes की आइटम्सस्सोर्स संपत्ति बदलना चाहता हूं .. यही कारण है कि मुझे कम्पोजिटव्यूमोडल जैसे मास्टर क्लास की आवश्यकता है, लेकिन XAML विशिष्ट बाइंडिंग को रोकने के लिए कैसे?

आप सभी संभव DataContext और के लिए एक सामान्य इंटरफ़ेस बना सकते हैं इसे अपने PageTitle

  सार्वजनिक वर्ग CompositeViewModel {सार्वजनिक ITest SelectedViewModel {bind; सेट; } // वी एम के इनट और रन टाइम पर उन्हें बदलते हैं ...} सार्वजनिक वर्ग की यात्राएंस्पॉन्सटाइपउपमोल्ड: आईटेस्ट {सार्वजनिक स्ट्रिंग टेस्ट {get; सेट; }} सार्वजनिक वर्ग TripTypeViewModel: ITest {सार्वजनिक स्ट्रिंग परीक्षण {get; सेट; }} सार्वजनिक इंटरफेस आईटेस्ट {string test {get; सेट; }}  

xaml

इस तरह से आप यह सुनिश्चित कर लें कि DataContext PageTitle का उपयोग करता है इसमें हमेशा एक test संपत्ति होगी जो आप एक्सएएमएल का उपयोग करने के लिए बाध्य कर सकते हैं


Comments