मैं किसी ऑब्जेक्ट की नेस्टेड प्रॉपर्टी का मूल्य प्राप्त करना चाहता हूं (Person.FullName.FirstName की तरह कुछ)। मैंने देखा कि नेट में प्रॉपर्टीपाथ नामक एक वर्ग है, जो डब्ल्यूपीएफ बाध्यकारी में इसी तरह के उद्देश्य के लिए उपयोग करता है। क्या WPF के तंत्र का पुन: उपयोग करने का कोई तरीका है, या मुझे अपने आप को एक लिखना चाहिए।क्या संपत्तिपाथ वर्ग का उपयोग कर ऑब्जेक्ट का संपत्ति मूल्य प्राप्त करने का कोई तरीका है?
उत्तर
PropertyPath पुनर्प्रयोग आकर्षक रूप में यह नेस्ट गुण traversing के रूप में आप का कहना है और अनुक्रमित समर्थन करता है। आप स्वयं को समान कार्यक्षमता लिख सकते हैं, मेरे पास अतीत में है लेकिन इसमें अर्द्ध जटिल पाठ पार्सिंग और प्रतिबिंबित कार्य शामिल हैं।
जैसा कि एंड्रयू बताता है कि आप बस WPP से PropertyPath का पुन: उपयोग कर सकते हैं। मुझे लगता है कि आप उस ऑब्जेक्ट के खिलाफ उस पथ का मूल्यांकन करना चाहते हैं जो आपके पास है, जिस स्थिति में कोड थोड़ा सा शामिल है। प्रॉपर्टीपैथ का मूल्यांकन करने के लिए इसे एक निर्भरता ऑब्जेक्ट के खिलाफ बाध्यकारी में उपयोग किया जाना चाहिए। इसे प्रदर्शित करने के लिए मैंने अभी एक साधारण निर्भरता ऑब्जेक्ट बनाया है जिसे बाध्यकारी एवल्यूलेटर कहा जाता है जिसमें एक एकल निर्भरता प्रजनन होता है। असली जादू तब बाध्यकारीऑपरेशंस को कॉल करके होता है। नेट बाइंडिंग जो बाइंडिंग लागू करती है ताकि हम मूल्यांकन मूल्य पढ़ सकें।
var path = new PropertyPath("FullName.FirstName");
var binding = new Binding();
binding.Source = new Person { FullName = new FullName { FirstName = "David"}}; // Just an example object similar to your question
binding.Path = path;
binding.Mode = BindingMode.TwoWay;
var evaluator = new BindingEvaluator();
BindingOperations.SetBinding(evaluator, BindingEvaluator.TargetProperty, binding);
var value = evaluator.Target;
// value will now be set to "David"
public class BindingEvaluator : DependencyObject
{
public static readonly DependencyProperty TargetProperty =
DependencyProperty.Register(
"Target",
typeof (object),
typeof (BindingEvaluator));
public object Target
{
get { return GetValue(TargetProperty); }
set { SetValue(TargetProperty, value); }
}
}
यदि आप इसे विस्तारित करना चाहते हैं तो आप संपत्ति परिवर्तनित घटनाओं को बदलने वाले मूल्यों को पढ़ने के लिए तारों को समर्थन दे सकते हैं। आशा है कि ये आपकी मदद करेगा!
मुझे कोई कारण नहीं दिख रहा है कि आप इसका पुन: उपयोग क्यों नहीं कर पाएंगे।
PropertyPath
देखें:
एक और संपत्ति नीचे एक रास्ता के रूप में एक संपत्ति का वर्णन के लिए एक डेटा संरचना औजार, या एक मालिक प्रकार नीचे। संपत्ति पथ का उपयोग ऑब्जेक्ट्स के लिए बाध्यकारी, और स्टोरीबोर्ड और एनिमेशन के लिए समयरेखा में किया जाता है।
- 1. क्या ऑब्जेक्ट पर संपत्ति घोषित करने के बजाए प्रोटोटाइप का उपयोग करने का कोई फायदा है?
- 2. क्या OpenNLP का उपयोग कर वाक्य का विषय प्राप्त करने का कोई तरीका है?
- 3. क्या कोई ऑब्जेक्ट का स्मृति पता एनएसएसटींग के रूप में प्राप्त करने का कोई तरीका है?
- 4. क्या Knockout.js का उपयोग कर डेटा-बाध्यकारी द्वारा पृष्ठ शीर्षक सेट करने का कोई तरीका है?
- 5. क्या ऑब्जेक्ट इनिशिलाइज़र का उपयोग करने का कोई फायदा है?
- 6. क्या कोई मौजूदा संपत्ति या विधि तक पहुंचने का प्रयास करने का कोई तरीका है?
- 7. क्या कोई संदर्भ पता प्राप्त करने का कोई तरीका है?
- 8. क्या जीत एपीआई का उपयोग कर HRESULT मूल्य की स्ट्रिंग प्रस्तुति प्राप्त करने का कोई तरीका है?
- 9. सेट संपत्ति के मूल्य संपत्ति का उपयोग कर नाम
- 10. क्या कोई ऑब्जेक्ट कुंजी ऑब्जेक्ट कुंजी के रूप में उपयोग करने का कोई तरीका है?
- 11. क्या प्रतिबिंब कक्षाओं का उपयोग कर एक निजी/संरक्षित स्थिर संपत्ति सेट करने का कोई तरीका है?
- 12. क्या जावा वस्तु का आकार प्राप्त करने का कोई आसान तरीका है?
- 13. क्या जावास्क्रिप्ट ऑब्जेक्ट में अक्षीय कुंजी का उपयोग करने का कोई तरीका है?
- 14. क्या कोको वेबव्यू ऑब्जेक्ट से वेबकिट वेब इंस्पेक्टर का उपयोग करने का कोई तरीका है?
- 15. क्या कोई डायनामिक ऑब्जेक्ट बनाने का कोई तरीका है जो इंटरफ़ेस का समर्थन करता है?
- 16. क्या सिल्वरलाइट ढांचे का उपयोग करने में कोई मूल्य है?
- 17. क्या एक्लिप्स का उपयोग कर किसी निश्चित वर्ग के बराबर() की सभी कॉल सूचीबद्ध करने का कोई तरीका है?
- 18. क्या एकाधिक सम्मिलन कथन का उपयोग करते हुए SCOPE_IDENTITY का उपयोग करने का कोई तरीका है?
- 19. जावास्क्रिप्ट का उपयोग कर SSL प्रमाणपत्र विवरण प्राप्त करने का कोई तरीका है?
- 20. क्या ऐसा करने का कोई तरीका है?
- 21. क्या पीईडीईवी में आरईपीएल प्राप्त करने का कोई तरीका है?
- 22. क्या "आंतरिक" दायरे वाले वर्ग उत्पन्न करने के लिए xsd.exe प्राप्त करने का कोई तरीका है?
- 23. क्या CFStreamCreatePairWithSocketToHost() का उपयोग करके सॉकेट संदर्भ प्राप्त करने का कोई तरीका है?
- 24. TypeForwardedToAttribute का उपयोग करने का सही तरीका क्या है?
- 25. क्या एक स्थिर विधि का उपयोग कर .NET में फ़ाइल का आकार प्राप्त करने का कोई तरीका है?
- 26. क्या उस संपत्ति के गेटटर से PropertyInfo प्राप्त करने का कोई तरीका है?
- 27. क्या गतिशील_कास्ट का उपयोग करने से रनटाइम पर ऑब्जेक्ट प्रकार का पता लगाने का कोई तेज़ तरीका है?
- 28. क्या httpwebrequest का निपटान करने का कोई सही तरीका है?
- 29. क्या एसिंक विधि का परीक्षण करने का कोई तरीका है?
- 30. क्या PHP का एफ़टीपी शुरू करने का कोई तरीका है?
आप उस संपत्ति को वापस कैसे लिखेंगे? –
मैंने लक्ष्य को अद्यतन करने के लिए कोड नमूना अपडेट किया है। आपको बस यह सुनिश्चित करना होगा कि बाध्यकारी दोवे है और एक सेटटर प्रदान करें। –