我在数据网格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。
答案 0 :(得分:0)
在cmb.SelectedItem = cData.FieldType;
中没有cmbGFld_Loaded()
的情况下尝试一下。这将覆盖XAML中的绑定SelectedItem="{Binding Path=FieldType}"
。而是在绑定的FieldType属性中设置所选项目。我不知道你的应用程序,但是:
FieldType = condLists[FieldGrid.SelectedIndex].FieldType;