2009-11-15 14 views
3

Je suis en train de se lier à une collection de contrôles que je produis dynamiquement:WPF ItemsControl se liant à la collecte des contrôles

<ItemsControl ItemsSource="{Binding CustomFields}"> 

Et le code:

public ObservableCollection<Control> CustomFields 
    { 
     get 
     { 
      return GetCustomFields(); 
     } 
    } 

Le Getcustomfields génère juste quelques commandes comme un ComboBox, un textbox etc. La liaison semble fonctionner, mais la fenêtre ne montre aucun de mes contrôles. Probablement parce que j'ai besoin d'un datatemplate dans itemscontrol. Ma question est de savoir quel type de datatemplate ai-je besoin?

Merci pour toute aide

Répondre

5

La propriété suivante comme avec le même XAML que vous utilisez:

public ObservableCollection<UIElement> Controls 
{ 
    get 
    { 
     var collection = new ObservableCollection<UIElement>(); 
     collection.Add(new Button { Content = "Hello world" }); 

     return collection; 
    } 
} 

Peut-être que votre problème vient d'ailleurs ... Pouvez-vous nous donner le code nécessaire pour reproduire le problème ?

+1

Merci, la modification de ObservableCollection au type UIElement au lieu du contrôle fonctionne. Je ne peux pas encore voter désolé. –