2009-04-27 11 views
5

ऐसा लगता है कि हर बार जब मैं "डब्ल्यूपीएफ डेटा बाध्यकारी कैसे करें" पर एक लेख पढ़ता हूं, तो यह कुछ भिन्न भिन्नताओं के साथ किया जाता है, कभी-कभी डेटाकॉन्टेक्स्ट के साथ, कभी-कभी बिना, कभी-कभी आइटमसोर्स या दोनों आइटमसोर्स और डेटाकॉन्टेक्स्ट के साथ, ऑब्जेक्टडेटाप्रोवाइडर भी होता है, और आप इनमें से कोई भी एक्सएएमएल या कोडबेइंड में हो सकते हैं, या कोई कोडबेइंड नहीं कर सकते हैं और सीधे एक्सएएमएल से अपने व्यू मॉडल्स में बाध्य कर सकते हैं।क्या कोई भी डब्ल्यूपीएफ डाटाबेसिंग उदाहरणों के एक संपूर्ण संग्रह के बारे में जानता है?

ऐसा लगता है वहाँ जैसे XAML के भीतर ही उपयोग करने के लिए अलग अलग वाक्यविन्यास के दर्जनों, कर रहे हैं की तरह:

<ListBox ItemsSource="{Binding Source={StaticResource Customers}}"> 

और

<ListBox DataContext="{StaticResource Customers}" ItemsSource="{Binding}"> 

इन दोनों कोड नमूने, उदाहरण के लिए, एक ही बात करते हैं:

:

1. कोई कोड-पीछे के साथ ObjectDataProvider का उपयोग करना

<Window x:Class="TestDataTemplate124.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:TestDataTemplate124" Title="Window1" Height="300" Width="300"> <Window.Resources> <ObjectDataProvider x:Key="Customers" ObjectType="{x:Type local:Customer}" MethodName="GetAllCustomers"/> </Window.Resources> <StackPanel> <ListBox DataContext="{StaticResource Customers}" ItemsSource="{Binding}"> <ListBox.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <TextBlock Text="{Binding FirstName}"/> <TextBlock Text=" "/> <TextBlock Text="{Binding LastName}"/> <TextBlock Text=" ("/> <TextBlock Text="{Binding Age}"/> <TextBlock Text=")"/> </StackPanel> </DataTemplate> </ListBox.ItemTemplate> </ListBox> </StackPanel> </Window> 

2. कोई DataContext साथ उदाहरण:

<Window x:Class="TestDataTemplate123.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:local="clr-namespace:TestDataTemplate123" 
    Title="Window1" Height="300" Width="300"> 
    <StackPanel> 
     <ListBox x:Name="ListBox1"> 
      <ListBox.ItemTemplate> 
       <DataTemplate> 
        <StackPanel Orientation="Horizontal"> 
         <TextBlock Text="{Binding FirstName}"/> 
         <TextBlock Text=" "/> 
         <TextBlock Text="{Binding LastName}"/> 
         <TextBlock Text=" ("/> 
         <TextBlock Text="{Binding Age}"/> 
         <TextBlock Text=")"/> 
        </StackPanel> 
       </DataTemplate> 
      </ListBox.ItemTemplate> 
     </ListBox> 
    </StackPanel> 
</Window> 

    using System.Collections.ObjectModel; 
    using System.Windows; 

    namespace TestDataTemplate123 
    { 
     public partial class Window1 : Window 
     { 
      public Window1() 
      { 
       InitializeComponent(); 
       ListBox1.ItemsSource = Customer.GetAllCustomers(); 
      } 
     } 
    } 

किसी को भी एक स्रोत है कि बस कहने के बजाय द्वारा WPF Databinding बताते हैं पता है "यहाँ है कि कैसे आप डेटा बाइंडिंग करते हैं" और फिर एक खास तरह से समझाते हैं, लेकिन इसके बजाय डाटाबेसिंग के बारे में जाने के विभिन्न तरीकों की व्याख्या करें और दिखाएं कि उदाहरण के के फायदे और नुकसान क्या हैं डेटाकॉन्टेक्स्ट होने या नहीं, एक्सएएमएल या कोड-बैक आदि में बाध्यकारी?

उत्तर

1

मैं आपको Bea Stollnitz से ब्लॉग की अनुशंसा कर सकता हूं। अगर मुझे गलत नहीं लगता है, तो वह माइक्रोसॉफ्ट में काम करती है और विशेष रूप से डाटाबेसिंग में डब्ल्यूपीएफ पर विकास में शामिल है। वह वास्तव में कुछ महान WPF ट्यूटोरियल है, कई डाटाबेसिंग पर। आपको यहां कुछ वाकई अच्छी जानकारी मिलनी चाहिए।

संबंधित मुद्दे