Q:

Populating a datagrid of comboboxes

The goal is to have a DataGrid of comboboxes, 10 rows, 3 columns.
Here's the XAML to create said grid:
<DataGrid Name="grid1"
          AutoGenerateColumns="False">
    <DataGrid.Columns>
        <DataGridTemplateColumn Header="Product">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <ComboBox Margin="2"
                              FontSize="25"
                              MinWidth="70"
                              ItemsSource="{Binding Product}" />
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>

        <DataGridTemplateColumn Header="Amount">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <ComboBox Margin="2"
                              FontSize="25"
                              MinWidth="70"
                              ItemsSource="{Binding Amount}" />
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>

        <DataGridTemplateColumn Header="Units">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <ComboBox Margin="2"
                              FontSize="25"
                              MinWidth="70"
                              ItemsSource="{Binding Units}" />
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>

Here's the code behind for the binding:
private void SetGrid()
{
    var materialList = new List<MudMaterial>();

    var newMaterial = new MudMaterial();

    for (var i = 0; i < 10; i++)
    {
        materialList.Add(newMaterial);
    }

    grid1.ItemsSource = materialList;
}

The MudMaterial Class:
class MudMaterial
{
    public ObservableCollection<string> Product { get; set; }
    public ObservableCollection<string> Units { get; set; }
    public ObservableCollection<string> Amount { get; set; }

    public MudMaterial()
    {
        Product = new ObservableCollection<string>() {  "                ",
            "Gel",
                                                        "Barrite",
                                                        "Detergent",
                                                        "Soap",
                                                        "X Gel",
                                                        "Bentonite",};

        Units = new ObservableCollection<string>() {"                ",
            "20 lb bag",
                                                    "40 lb bag",
                                                    "50 lb bag",
                                                    "80 lb bag",
                                                    "1 gal",
                                                    "2 gal",
                                                    "3 gal",};

        Amount = new ObservableCollection<string>() {"                ",
            "1",
                                                        "2",
                                                        "3",
                                                        "4",
                                                        "5",
                                                        "6",};
    }
}

The actual length of the ObservableCOllection<string>s ranges from 10-70 items.
Now, aside from a few quirks(extra empty row at the end, extra empty column in the beginning), this works. However, I feel dirty having come up with this. Surely there must be a more efficient way to do this?
Here's a picture of the grid:

I'm using a datagrid because it seemed easier to do than anything else. Every box under "Product" has the same exact items, every box under "Amount" has the same exact items, and every box under "Units" has the exact same items. Essentially, I'm just looking for a better way, if it exists, to populate those boxes than what I'm already doing.

A:

If your items in the ComboBox are static, you don't need binding at all.
<DataGridTemplateColumn Header="Product">
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <ComboBox>
                    <ComboBoxItem>Grapes</ComboBoxItem>
                    <ComboBoxItem>Apples</ComboBoxItem>
                    <ComboBoxItem>Oranges</ComboBoxItem>
                </ComboBox>
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

