मैं अपने आवेदन के लिए एक WPF उपयोगकर्ता नियंत्रण लिख रहा हूं, एक सूची बॉक्स और कुछ अन्य आइटम लपेट रहा हूं।मेरे Wpf UserControl के लिए DisplayMemberPath को कैसे कार्यान्वित करें?
ListBox एक नया ItemTemplate कि मेरी सूची में प्रत्येक आइटम के लिए जानकारी का चार टुकड़े प्रस्तुत करता है। मैं अपनी सूची वस्तुओं पर विशिष्ट गुणों के लिए चार बाइंडिंग में से प्रत्येक को हार्ड कोड कर सकता हूं और वे ठीक प्रदर्शित करते हैं।
हालांकि, मैं चाहता हूं कि मेरा UserControl थोड़ा अधिक लचीला हो।
ListBox और ComboBox पर वहाँ एक संपत्ति DisplayMemberPath (ItemsControl से विरासत में मिली) है कि "इंजेक्षन" करने के लिए उपयुक्त गुण मानक ItemTemplate में बाध्यकारी लगता है।
मैं अपने उपयोगकर्ता नियंत्रण के साथ एक ही परिणाम कैसे प्राप्त करते हैं?
मैं जानकारी प्रदर्शित की विन्यास अनुमति देने के लिए चार नई प्रॉपर्टी सेट अप करना चाहते हैं:
public string LabelDisplayPath { get; set; }
public string MetricDisplayPath { get; set; }
public string TitleDisplayPath { get; set; }
public string SubtitleDisplayPath { get; set; }
परावर्तक साथ ItemsControl.DisplayMemberPath की समीक्षा नीचे खरगोश की मांद में जाने के लिए लगता है, मैं नहीं कर पाए हैं यह कैसे काम करता है यह समझने के लिए।
इसके अलावा, अगर मैं पूरी तरह से पाठ्यक्रम बंद कर रहा हूँ - और वहाँ एक और है, और अधिक "WPF" तकनीक है कि मैं बजाय का उपयोग करना चाहिए है, कृपया मुझे उस दिशा में इशारा करते हैं।
अद्यतन
यहाँ मैं क्या हासिल करने की कोशिश कर रहा हूँ की एक स्पष्टीकरण है।
ListBox मेरे उपयोगकर्ता नियंत्रण प्रदर्शित करता है प्रति आइटम सूचना के चार टुकड़े के भीतर: लेबल, शीर्षक, उपशीर्षक और मीट्रिक
एक जगह में, मैं मुद्दों की एक सूची प्रदर्शित करने के लिए इस उपयोगकर्ता नियंत्रण का उपयोग करना चाहते हैं। हर अंक इस प्रकार है:
public class Issue {
public string Code { get; set; }
public string Description { get; set; }
public string Priority { get; set; }
public string Reporter { get; set; }
}
जब मुद्दों को प्रदर्शित करने, मैं निम्नलिखित मैपिंग का उपयोग करना चाहते:
Code --> Label
Description --> Title
Reporter --> Subtitle
Priority --> Metric
एक ही आवेदन में कहीं और, मुझे लगता है कि मैं का उपयोग कर प्रदर्शित करना चाहते हैं पदों की एक सूची है वही UserControl।
PostedOn --> Label
Title --> Title
Teaser --> Subtitle
CommentCount --> Metric
देखते हुए कि मुद्दे और पोस्ट काफी अलग कपोल-कल्पना कर रहे हैं, मैं नहीं चाहता कि उन्हें बाध्य करना चाहते हैं:
public class Post {
public DateTime PostedOn { get; set; }
public string Title { get; set; }
public string Teaser { get; set; }
public int CommentCount { get; set; }
}
पदों को प्रदर्शित करते हैं, मैं निम्नलिखित मैपिंग का उपयोग करना चाहते: प्रत्येक पोस्ट इस तरह दिखता है एक ही गुण रखने के लिए, केवल UserControl को अपरिवर्तित उपयोग करने की अनुमति देने के लिए। इसके बजाय, मैं एक छोटी कॉन्फ़िगरेशन शुरू करना चाहता हूं ताकि मैं दोनों साइट्स में अपने उपयोगकर्ता नियंत्रण को पुन: उपयोग कर सकूं।
मुझे समझ में नहीं आता कि आप क्या करने की कोशिश कर रहे हैं। अपनी बाधाओं को "हार्डकोडिंग" करके, आप अभी भी केवल इस तथ्य से लचीलापन प्राप्त कर रहे हैं कि आप डेटाबेस का उपयोग कर रहे हैं, है ना? मेरा मतलब है, आप किसी भी निर्भरता प्रॉपर्टी से जुड़ सकते हैं और उस मान को कोड-पीछे में बदल सकते हैं। क्या आप एक्सएएमएल का एक नमूना पोस्ट कर सकते हैं जिसका उपयोग आप कर रहे हैं, और यह बताएं कि आप किससे नाखुश हैं? – Dave