2012-05-10 6 views
1

DataGridにComboBoxをプログラマチックに塗りたいが、機能しない。他のバージョンでも動作していないDataGridTemplateColumn内の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"); 
    } 

コンボボックスで私はコンボボックスを埋めるしたいLoadedイベントを経由して

<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> 

: これは、XAMLコードでありますDataGridには4つの空の項目が含まれています。空の意味は「item1」なし...

私がここで間違っていることを誰かに教えてもらえますか?

答えて

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"); 
    } 
関連する問題