2009-08-29 6 views
0

J'ai un gridview où les colonnes se fixe ses données à l'Datagrid.DataContext dans Page_Loaded:Réglage de la source de données pour ComboBoxes en cellulos dans Silverlight DataGrid

private void Shema_Loaded(object sender, RoutedEventArgs e) 
{ 
    GridName.DataContext = AllPdiLines; 
} 

Je veux une grille où l'une des cellules dans chaque ligne contient une zone de liste déroulante avec des valeurs sélectionnables qui se lie ensuite à la source de données datagrid lorsqu'elle est sélectionnée. Devrait être facile, mais un ne peut pas lier la collection itemscollection pour la liste déroulante.

Le XAML ressemble à ceci:

<data:DataGrid x:Name="GridName" 
ItemsSource="{Binding}"     
AutoGenerateColumns="False" 
SelectionMode="Single" 
ScrollViewer.VerticalScrollBarVisibility="Auto" 
ScrollViewer.HorizontalScrollBarVisibility="Auto" 
Margin="4"> 
<data:DataGrid.Columns> 
    <data:DataGridTemplateColumn Header="First name"> 
     <data:DataGridTemplateColumn.CellEditingTemplate> 
      <DataTemplate> 
       <TextBox Text="{Binding FirstName,Mode=TwoWay}"/> 
      </DataTemplate> 
     </data:DataGridTemplateColumn.CellEditingTemplate> 
    </data:DataGridTemplateColumn> 
    <data:DataGridTemplateColumn Header="LastName" CanUserSort="True"> 
     <data:DataGridTemplateColumn.CellTemplate> 
      <DataTemplate> 
       <TextBox Text="{Binding LastName,Mode=TwoWay}"/> 
      </DataTemplate> 
     </data:DataGridTemplateColumn.CellTemplate> 
    </data:DataGridTemplateColumn> 
    <data:DataGridTemplateColumn Header="Country"> 
     <data:DataGridTemplateColumn.CellEditingTemplate> 
      <DataTemplate> 
       <ComboBox x:Name="cbxQ" IsEnabled="True" 
        SelectedItem="{Binding Country,Mode=TwoWay}" 
        ItemsSource="{Binding Countries, Source={StaticResource CountryDataSource}}" 
        ItemTemplate="{StaticResource CountryListTemplate}"/> 
      </DataTemplate> 
     </data:DataGridTemplateColumn.CellEditingTemplate> 
    </data:DataGridTemplateColumn>        
</data:DataGrid.Columns> 

Alors, je mets le DataContext pour le DataGrid et les deux premières colonnes se lie de manière bien, mais comment puis-je régler la source de données pour les valeurs sélectionnables dans le ComboBox dans chaque rangée.

concernant Øyvind

+0

Quelle version de SL utilisez-vous? – AnthonyWJones

+0

Quel est le type de données de la propriété Country? – AnthonyWJones

Répondre

0

Qu'est-ce que CountryDataSource? Vous ne pouvez pas utiliser DomainDataSource avec Comboboxes pour plusieurs raisons. Vous pouvez utiliser le package comboboxextensions et utiliser la liste déroulante comboboxdatasource. Si vous liez cela à votre source de données dans votre définition de grille, cela fonctionnera.

Plus de détails ici - http://blogs.msdn.com/b/kylemc/archive/2010/06/18/combobox-sample-for-ria-services.aspx

+0

Je viens de réaliser que c'est une très très vieille question, mais en laissant la réponse ici tout de même. –