2010-05-03 3 views
3

Si j'ai une propriété dans mon C#;XAML ComboBox Lier à la propriété

public CollectionView Months 
    { 
     get 
     { 
      CollectionView retList = new Enumerations.Months().ToCollectionView<Enumerations.Months>(); 
      return retList; 
     } 
    } 

Et j'ai un ComboBox;

<ComboBox x:Name="ddlMonth" Grid.Row="3" Grid.Column="1" 
ItemsSource="{Binding Source={StaticResource Months}}"/> 

Comment puis-je lier mon ComboBox à ma propriété?

Je devrais ajouter que je suis un débutant complet de xaml.

Répondre

2

Tout d'abord, ce n'est pas une méthode - c'est une propriété.

Tout ce que vous avez à faire est la suivante: (y compris la page)

<ComboBox x:Name="ddlMonth" Grid.Row="3" Grid.Column="1" ItemsSource="{Binding Months}"/> 

L'astuce consiste à faire en sorte que quelle que soit la classe la propriété Months apparaît est définie comme DataContext du ComboBox ou un de ses parents .

Donc, si la Months propriété apparaît dans la même page qui héberge la zone de liste déroulante, vous pouvez ajouter cette ligne de code dans le constructeur ou Loaded événement de la page:

this.DataContext = this; 

Si la propriété Months apparaît dans un ViewModel (que j'espère qu'il fait!) alors vous devez assigner le ViewModel au DataContext de la page (ou un contrôle subsidiaire qui est toujours un parent (ancêtre) de la ComboBox).

+0

+1, Oups, ouais désolé pas méthode, propriété. Question éditée Merci. – griegs

Questions connexes