1

プログラムでDataGridにComboBoxを入力したいのですが、機能しません。これはXAMLコードです。

<DataGridTemplateColumn 
                    CellStyle="{StaticResource DataGridColumnContentCenter}"
                    local:DataGridUtil.Name="ComboBoxCol01"
                    x:Name="ComboBoxCol01"
                    Header="Maschine"
                    SortMemberPath="ComboBoxCol01"
                    IsReadOnly="True">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <ComboBox DisplayMemberPath="@name"
                                      IsSynchronizedWithCurrentItem="False"
                                      SelectedIndex="{Binding ComboBoxCol01}"
                                      IsReadOnly="True"
                                      IsEditable="True"
                                      IsDropDownOpen="False"
                                      IsHitTestVisible="True"
                                      Width="104"
                                      Loaded="ComboBoxCol01_Loaded">
                            </ComboBox>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>

Loadedイベントを介して、ComboBoxに入力したいと思います。

private void ComboBoxCol01_Loaded(object sender, RoutedEventArgs e)
    {
        List<string> myList = new List<string>();
        myList.Add("item1");
        myList.Add("item2");
        myList.Add("item3");
        myList.Add("item4");

        ComboBox curComboBox = sender as ComboBox;
        curComboBox.ItemsSource = myList;
    }

他のバージョンも機能していません:

private void ComboBoxCol01_Loaded(object sender, RoutedEventArgs e)
    {
        ComboBox curComboBox = sender as ComboBox;
        curComboBox.Items.Add("item1");
        curComboBox.Items.Add("item2");
        curComboBox.Items.Add("item3");
        curComboBox.Items.Add("item4");
    }

DataGridのComboBoxには、4つの空のアイテムが含まれています。空とは「item1」がないことを意味します...

私はここで何が間違っているのですか?

4

1 に答える 1

2

コンボボックスに名前を付けることはできませんか? そして、アイテムを追加しますか?

<DataGridTemplateColumn 
                    CellStyle="{StaticResource DataGridColumnContentCenter}"
                    local:DataGridUtil.Name="ComboBoxCol01"
                    x:Name="ComboBoxCol01"
                    Header="Maschine"
                    SortMemberPath="ComboBoxCol01"
                    IsReadOnly="True">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <ComboBox **x:Name="cboCol1"**
                                      DisplayMemberPath="@name"
                                      IsSynchronizedWithCurrentItem="False"
                                      SelectedIndex="{Binding ComboBoxCol01}"
                                      IsReadOnly="True"
                                      IsEditable="True"
                                      IsDropDownOpen="False"
                                      IsHitTestVisible="True"
                                      Width="104"
                                      Loaded="ComboBoxCol01_Loaded">
                            </ComboBox>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>

private void ComboBoxCol01_Loaded(object sender, RoutedEventArgs e)
    {
        cboCol1.Items.Add("item1");
        cboCol1.Items.Add("item2");
        cboCol1.Items.Add("item3");
        cboCol1.Items.Add("item4");
    }
于 2012-05-10T14:09:09.900 に答える