2011-02-28 12 views
5

में एक स्थिर संसाधन के रूप में संग्रह वर्ग का उपयोग कैसे कर सकता हूं मेरे पास 2 गुणों के साथ Customer नामक एक साधारण श्रेणी है।
public Name {get;set;}
public LastName {get;set}

तो मैं केवल एक सार्वजनिक संपत्ति नामित ग्राहकोंमैं चांदी की रोशनी

public class CustomerList 
{ 
    public List<Customer> Customers { get; set; } 

    public CustomerList() 
    { 
     Customers = new List<Customer>(); 
     Customers.Add(new Customer() { Name = "Foo", LastName = "Bar" }); 
     Customers.Add(new Customer() { Name = "Foo1", LastName = "Bar1" }); 
    } 
} 

के साथ एक संग्रह वर्ग CustomerList नामित किए गए अब मैं XAML में एक स्थिर resouce के रूप में इस वर्ग का उपयोग करना चाहते।

<UserControl.Resources> 
    <customers:CustomerList x:Key="CustomersKey"> 
    </UserControl.Resources> 

और फिर एक ListBox

<ListBox x:Name="lvTemplate" ItemsSource="{Binding Source={StaticResource CustomersKey}}"> 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
       <StackPanel> 
        <TextBox Text="{Binding Name}"/> 
        <TextBox Text="{Binding LastName}"/> 
       </StackPanel> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
    </ListBox> 

में इसका इस्तेमाल करते हैं, तो मैं कोड behide में ItemsSource निर्धारित करते हैं, वर्ग instantiating के बाद, सब ठीक काम करते हैं। अगर मैं इसे एक्सएएमएल और स्थिर संसाधन से सेट करने का प्रयास करता हूं तो कुछ भी नहीं होता है। भले ही मैं {Binding Path=Customer.Name} या {Binding Path=Name} का उपयोग न करें।

जाहिर है मैं कुछ याद आती है ...

उत्तर

5

CustomerList के बाद से वास्तव में आइटम (IEnumerable लागू नहीं करता है), तो आप ऑब्जेक्ट के अंदर क्या संपत्ति आप ItemsSource के रूप में उपयोग करना चाहते हैं निर्दिष्ट करने की आवश्यकता की सूची नहीं है।

<ListBox ItemsSource="{Binding Path=Customers, Source={StaticResource CustomersKey}}"> 
+0

ओह! मैं DataTemplate के अंदर पथ का उपयोग करने की कोशिश कर रहा था ... यह मेरी गलती थी। जवाब के लिए धन्यवाद। –

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