2012-05-28 129 views
0

我有一個組合框在數據網格EditItemTemplate裏,我寫在組合框中一些代碼加載事件,如:WPF組合框的動態綁定

代碼:

private void cmbGFld_Loaded(object sender, RoutedEventArgs e) 
     { 
      ComboBox cmb = (ComboBox)sender; 
      cmb.ItemsSource = FieldsList.GetFieldList(); 
      ConditionField cData = condLists[FieldGrid.SelectedIndex]; 
      cmb.SelectedItem = cData.FieldType; 
     } 

XAML代碼:

<toolkit:DataGridTemplateColumn.CellEditingTemplate> 
             <DataTemplate x:Name="editTemplate"> 
              <ComboBox Loaded="cmbGFld_Loaded" BorderBrush="Transparent" SelectedItem="{Binding Path=FieldType}" SelectedValuePath="Name" BorderThickness="0" FontSize="13" FontStyle="Italic" FontWeight="Normal" Foreground="DimGray" x:Name="cmbGFld" Template="{StaticResource ComboBoxTemplate2}"> 
               <ComboBox.Resources> 
                <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}">Green</SolidColorBrush> 
               </ComboBox.Resources> 
               <ComboBox.ItemTemplate> 
                <DataTemplate> 
                 <TextBlock HorizontalAlignment="Left" Text="{Binding Name}"/> 
             </DataTemplate> 
               </ComboBox.ItemTemplate> 
              </ComboBox> 

             </DataTemplate> 
            </toolkit:DataGridTemplateColumn.CellEditingTemplate> 

但問題是,當我試圖編輯組合框它不顯示哪個是alre選擇ady,任何人都可以幫助我。

謝謝, @nag。

回答

0

cmbGFld_Loaded()中試一下沒有cmb.SelectedItem = cData.FieldType;。這將覆蓋XAML中的綁定SelectedItem="{Binding Path=FieldType}"。改爲在綁定的FieldType屬性中設置所選項目。我不知道你的應用程序,但喜歡的事:

FieldType = condLists[FieldGrid.SelectedIndex].FieldType; 
+0

感謝您的寶貴答案,我改變了我的代碼,但以上當過我打電話cmb.selecteditem = condlist [fieldgrid.selectedindex] .fieldtype我越來越空值。 – nag