DataGrid WPF: liaison DataSource DataGridComboxBox à une collection de collections

Situation:

J'ai créé un DataGrid en XAML et le ItemsSource est lié à une ObservableCollection d'une certaine classe qui contient des propriétés. Puis, en C#, j'ai créer un DataGridTextColumn et un DataGridComboBoxColumn et lié à l'propriétés des objets à l'intérieur de l'ObservableCollection. Je peux lier le DataGridComboBoxColumn à une simple Collection, mais ce que je veux faire est de le lier à une collection de collections de chaînes, de sorte que pour chaque ligne de la zone de liste déroulante à l'intérieur de la grille de données est une collection différente de la chaîne. Je n'ai pas réussi à le faire...

Question:

Comment puis-je lier la DataGridCombBoxColumn afin que je puisse avoir une autre collection de chaînes de caractères pour chaque ligne de ce type de colonne?

Exemple De Code:

XAML:

<Window>
  <!-- ... -->
  WPFToolkit:DataGrid
           x:Name="DG_Operations"
           Margin="10,5,10,5" 
           Height="100" 
           HorizontalAlignment="Stretch" 
           FontWeight="Normal" 
           ItemsSource="{Binding Path=OperationsStats}"
           AlternatingRowBackground="{DynamicResource SpecialColor}" 
           HorizontalScrollBarVisibility="Auto" 
           VerticalScrollBarVisibility="Visible" 
           SelectionMode="Extended"
           CanUserAddRows="False" 
           CanUserDeleteRows="False"
           CanUserResizeRows="True" 
           CanUserSortColumns="True"
           AutoGenerateColumns="False" 
           IsReadOnly="False" 
           IsEnabled="True"
           BorderThickness="1,1,1,1" 
           VerticalAlignment="Stretch"/>
  <!-- ... -->
</Window>

C#:

public class DataModelStatsOperations
{
   public ObservableCollection<IStatsOperation> OperationsStats { get; set; }
}

public interface IStatsOperation
{
   string Operation { get; set; }
   Collection<string> Data{ get; set; }
}

public class StatsOperation : IStatsOperation
{
    public StatsOperation(string operation, Collection<string> data)
    {
        Operation = operation;
        Data = data;
    }
    public string Operation { get; set; }
    public Collection<string> Data{ get; set; }
}

private ObservableCollection<IStatsOperation> dataOperations_ =
        new ObservableCollection<IStatsOperation>();

//...
 Binding items = new Binding();
 PropertyPath path = new PropertyPath("Operation");
 items.Path = path;
 DG_Operations.Columns.Add(new DataGridTextColumn()
 {
     Header = "Operations",
     Width = 133,
     Binding = items
  });
  DG_Operations.Columns.Add(new DataGridComboBoxColumn()
  {
     Header = "Data",
     Width = 190,
     ItemsSource = /*???*/,
     SelectedValueBinding = new Binding("Data"),
     TextBinding = new Binding("Data")
  });
dataOperations_.Add(new StatsOperation(CB_Operation.SelectedItem.ToString(),
                                                           dataCollection));
DG_Operations.DataContext = new DataModelStatsOperations
{
    OperationsStats = dataOperations_
};
//...

Toute aide serait grandement appréciée!

Notes:

Bon, alors après avoir lu les deux premières réponses, j'ai remarqué quelque chose. Ma liaison est vraiment pas juste! Maintenant, ce que je veux faire, c'est quelque chose de semblable à ce que AndyG proposé:

DG_Operations.Columns.Add(new DataGridComboBoxColumn()
{
    Header = "Data",
    Width = 190,
    ItemsSource = new Binding("Data"), //notice this here does not work (have a look at the following error)
    SelectedValueBinding = new Binding("Operation"),
    TextBinding = new Binding("Operation")
});

D'erreur: "Impossible de convertir implicitement le type de Système.De Windows.Les données.De liaison " à " Système.Les Collections.IEnumerable'."

Comment le ItemsSource être lié à des Données?

source d'informationauteur