डब्ल्यूपीएफ डाटाबेसिंग

क्या कोई मुझे डब्ल्यूपीएफ में नियंत्रण (कॉम्बोबॉक्स, लिस्टबॉक्स, इत्यादि) पर डाटाबाइंडिंग करने के तरीके को दिखाने के लिए मुझे एक अच्छा संसाधन (या मुझे एक सुराग फेंक सकता है) को इंगित कर सकता है? मैं थोड़ी देर के नुकसान में हूं जब मेरे सभी WinForms की अच्छीताओं को मुझसे दूर ले जाया जाता है, और मैं उन सभी के साथ शुरू करने के लिए उज्ज्वल नहीं हूं ...

0
ro fr bn

6 उत्तर

कोड के पीछे - आपके संग्रह बॉक्स के डेटाकॉन्टेक्स्ट को उस संग्रह के बराबर सेट करें जिसे आप बाध्यकारी कर रहे हैं।

private void OnInit(object sender, EventArgs e)
{
  //myDataSet is some IEnumerable 

  // myListBox is a ListBox control.
  // Set the DataContext of the ListBox to myDataSet
  myListBox.DataContext = myDataSet;
}

एक्सएएमएल में, लिस्टबॉक्स घोषित कर सकता है कि यह "बाध्यकारी" वाक्यविन्यास का उपयोग करने के लिए कौन सी गुणों से जुड़ा हुआ है।


0
जोड़ा

और कुछ और लिंक, अगर उपर्युक्त पर्याप्त नहीं है:

Windows Presentation Foundation - Data Binding How-to Topics
- Approx 30 'How To' articles from MSDN.
"The topics in this section describe how to use data binding to bind elements to data from a variety of data sources in the form of common language runtime (CLR) objects and XML. "

Moving Toward wpf Data Binding One Step at a Time
- By wpf guru Josh Smith
"This article explains the absolute basics of wpf data binding. It shows four different ways how to perform the same simple task. Each iteration moves closer to the most compact, XAML-only implementation possible. This article is for people with no experience in wpf data binding."

0
जोड़ा

यहां एमएसडीएन से एक और अच्छा संसाधन है: डेटा बाध्यकारी अवलोकन

0
जोड़ा

WPF डेटा बाइंडिंग के लिए मैंने पाया सबसे अच्छा संसाधन बीए कोस्टा का ब्लॉग है। पहले पोस्ट से शुरू करें और आगे पढ़ें। यह विस्मयकारी है।

0
जोड़ा

मुझे विंडोज क्लाइंट .Net पर ट्यूटोरियल वीडियो मिलते हैं। डॉट नेट रॉक्स टीवी ने इसे कुछ समय पहले भी कवर किया है।

0
जोड़ा
ये लिंक अब अस्पष्ट दिखते हैं (विंडोज क्लाइंट .NET लिंक अब DNS पर भी हल नहीं होता है)
जोड़ा लेखक Ortund, स्रोत

आपको तीन चीजें करने की ज़रूरत है:

  1. विकल्पों की सूची में कॉम्बोबॉक्स के आइटम्ससोर्स को बाध्य करें।
  2. चयनित इटैम को उस संपत्ति में बांधें जिसमें चयन है।
  3. कॉम्बोबॉक्स ITem टेम्पलेट को कॉम्बोबॉक्स Item के लिए डेटा टेम्पलेट पर सेट करें।

इसलिए, उदाहरण के लिए, यदि आपका डेटा संदर्भ ऑब्जेक्ट एक व्यक्ति है जिसमें ईमेल पते हैं, और आप अपना प्राथमिक चुनना चाहते हैं, तो आपके पास इन हस्ताक्षरों के साथ कक्षाएं हो सकती हैं:

public class EmailAddress
{
    public string AddressAsString { get; set; }
}

public class Person
{
    public IEnumerable EmailAddresses { get; }
    public EmailAddress MainEmailAddress { get; set; }
}

फिर आप इस तरह कॉम्बो बॉक्स बना सकते हैं:


    
        
            
        
    

अब आपको व्यक्ति और ईमेल एड्रेस में बदलकर INotifyProperty को लागू करने की आवश्यकता है। ईमेल एड्रेस संग्रह के लिए, आप इसे ObjservableCollection के साथ वापस कर सकते हैं।

या एक विकल्प के रूप में आप अद्यतन नियंत्रण .NET का उपयोग कर सकते हैं। यह एक ओपन सोर्स प्रोजेक्ट है जो डेटा बाइंडिंग को प्रतिस्थापित करता है और इसमें INotifyPropertyChanged की आवश्यकता नहीं होती है। आप ईमेल एड्रेस्रेस संपत्ति को वापस करने के लिए जो भी संग्रह समझते हैं उसका उपयोग कर सकते हैं। एक्सएएमएल उपर्युक्त जैसा ही काम करता है, सिवाय इसके कि आप UpdateControls.XAML नेमस्पेस आयात करते हैं और {u: अद्यतन ...} के साथ {बाध्यकारी ...} को प्रतिस्थापित करते हैं।

0
जोड़ा