निम्नलिखित उदाहरण सफलतापूर्वक वस्तुओं को प्रदर्शित करने के लिए एक ListBox
हालांकि, मैं एक वर्ग में सभी वस्तुओं को बनाना चाहता हूं और फिर मेरे एक्सएएमएल ListBox
को भरने के लिए LINQ के साथ दूसरे वर्ग के प्रश्न से, इस उदाहरण को जोड़ने के लिए मुझे क्या करना होगा:
एक्सएएमएल:
<पूर्व> & lt; विंडो x: कक्षा = "WpfApplication15.Window1" xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns: x = "Http://schemas.microsoft.com/winfx/2006/xaml" शीर्षक = "विंडो 1" ऊंचाई = "300" चौड़ाई = "300" xmlns: स्थानीय = "clr-namespace: WpfApplication15" & gt; & LT; Window.Resources & gt; & Lt; ObjectDataProvider x: कुंजी = "ग्राहक" ऑब्जेक्टटाइप = "{x: प्रकार स्थानीय: ग्राहक}" / & gt; & Lt; DataTemplate x: कुंजी = "लास्टनाम फ़ास्ट" डेटाटाइप = "WpfApplication15.Customer" & gt; & Lt; स्टैकपैनेल मार्जिन = "10 10 10 0" अभिविन्यास = "क्षैतिज" & gt; & Lt; टेक्स्टब्लॉक टेक्स्ट = "{बाध्यकारी पथ = अंतिम नाम}" फ़ॉन्टईइट = "बोल्ड" / & gt; & Lt; टेक्स्टब्लॉक टेक्स्ट = "," / & gt; & Lt; टेक्स्टब्लॉक टेक्स्ट = "{बाध्यकारी पथ = प्रथमनाम}" / & gt; & Lt; / StackPanel & gt; & Lt; / DataTemplate & gt; & LT; /Window.Resources> & LT; ग्रिड & gt; & Lt; ListBox ItemsSource = "{बाध्यकारी स्रोत = {स्टैटिक रीसोर्स ग्राहक}}" आइटमटैम्प्लेट = "{स्टेटिक संसाधनों LastNameFirst}" / & gt; & Lt; / ग्रिड & gt; & Lt; / विंडो & gt;
पीछे कोड:
सिस्टम का उपयोग कर; System.Collections.Generic का उपयोग कर; System.Linq का उपयोग कर; System.Text का उपयोग कर; System.Windows का उपयोग कर; System.Windows.Controls का उपयोग कर; System.Windows.Data का उपयोग कर; System.Windows.Documents का उपयोग कर; System.Windows.Input का उपयोग कर; System.Windows.Media; System.Windows.Media। इमेजिंग का उपयोग कर; System.Windows.Navigation का उपयोग कर; System.Windows.Shapes का उपयोग कर; नामस्थान WpfApplication15 {सार्वजनिक आंशिक वर्ग खिड़की 1: विंडो {सार्वजनिक विंडो 1 () {आरंभिकसमूह (); }} सार्वजनिक वर्ग ग्राहक {सार्वजनिक स्ट्रिंग प्रथमनाम {प्राप्त; सेट; } सार्वजनिक स्ट्रिंग LastName {get; सेट; } सार्वजनिक ग्राहक (स्ट्रिंग प्रथम नाम, स्ट्रिंग अंतिमनाम) {this.FirstName = firstName; This.LastName = lastName; }} सार्वजनिक वर्ग के ग्राहक: सूची & lt; ग्राहक & gt; {सार्वजनिक ग्राहक () {this.Add (नया ग्राहक ("जिम", "थॉम्पसन")); यह। जोड़ें (नया ग्राहक ("जुली", "वाटसन")); यह। जोड़ें (नया ग्राहक ("जॉन", "वाल्टन")); }}}}
संपादित करें: LINQ क्वेरी को जोड़ा गया ToList कॉल
आप केवल इसके लिए कोड-पीछे LINQ में ListBox का आइटम्स स्रोत निर्दिष्ट कर सकते हैं। मान लें कि आप अपने ListBox को एक नाम देते हैं:
& lt; विंडो x: कक्षा = "WpfApplication15.Window1" xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation "Xmlns: स्थानीय =" सीएलआर-नामस्थान: WpfApplication15 "xmlns: x =" http://schemas.microsoft.com/winfx/2006/xaml "चौड़ाई =" 300 "ऊँचाई =" 300 "शीर्षक =" विंडो 1 "& gt; & LT; Window.Resources & gt; & Lt; DataTemplate x: कुंजी = "लास्टनाम फ़ास्ट" डेटाटाइप = "WpfApplication15.Customer" & gt; & Lt; स्टैकपैनेल मार्जिन = "10 10 10 0" अभिविन्यास = "क्षैतिज" & gt; & Lt; टेक्स्टब्लॉक फ़ॉन्ट वेइट = "बोल्ड" टेक्स्ट = "{बाध्यकारी पथ = अंतिम नाम}" / & gt; & Lt; टेक्स्टब्लॉक टेक्स्ट = "," / & gt; & Lt; टेक्स्टब्लॉक टेक्स्ट = "{बाध्यकारी पथ = प्रथमनाम}" / & gt; & Lt; / StackPanel & gt; & Lt; / DataTemplate & gt; & LT; /Window.Resources> & LT; ग्रिड & gt; & Lt; ListBox x: नाम = "lstCustomers" ItemTemplate = "{StaticResource LastNameFirst}" / & gt; & Lt; / ग्रिड & gt; & Lt; / विंडो & gt;
आप लोड किए गए ईवेंट में आइटम स्रोत को असाइन कर सकते हैं:
सार्वजनिक आंशिक वर्ग विंडो 1: विंडो {सार्वजनिक विंडो 1 () {this.Loaded + = नए रूटिंग एवेनहैंडलर (Window1_Loaded); InitializeComponent (); } शून्य खिड़की 1_लोडेड (ऑब्जेक्ट प्रेषक, रूटिंग एवेंट एआरजी ई) {ग्राहकों के ग्राहक = नया ग्राहक (); LstCustomers.ItemsSource = customers.Where (ग्राहक = & gt; ग्राहक .ListName.StartsWith ("W"))। ToList (); }}
यह सोचें कि आपकी LINQ क्वेरी कुछ तर्क के आधार पर बदलेगी, आप आइटमों को उचित बिंदुओं पर पुन: असाइन कर सकते हैं।
यदि आप कोड-पीछे जब भी आपकी क्वेरी तर्क बदल जाता है, तो संभवतः आप इसका उपयोग कर रहे हैं, क्योंकि इसकी और क्षमताओं हैं (यह मानते हुए कि आप LINQ का इस्तेमाल करने के बाद क्या कर रहे हैं)।
Comments
Post a Comment