0

我在数据网格edititemtemplate中有一个组合框,我在组合框加载事件中编写了一些代码,例如:

代码:

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>

但问题是,当我尝试编辑组合框时,它没有显示已选择的组合框,任何人都可以帮助我。

谢谢,@nag。

4

1 回答 1

0

cmb.SelectedItem = cData.FieldType;不带in试试cmbGFld_Loaded()。这将覆盖SelectedItem="{Binding Path=FieldType}"XAML 中的绑定。而是在绑定的 FieldType 属性中设置所选项目。我不知道您的应用程序,但类似:

FieldType = condLists[FieldGrid.SelectedIndex].FieldType;
于 2012-05-28T10:13:47.540 回答