2011-11-04 83 views
1

如何在DevExpress ComboBoxEdit中“设置”SelectedIndex
我试过XAML和后面的代码,但索引没有设置,它从一个空白项开始。如何在DevExpress ComboBoxEdit中设置索引?

我的XAML: [我不明白为什么,这并不工作,但它并不..]

<dxb:BarEditItem.EditSettings> 
    <dxe:ComboBoxEditSettings> 
     <dxe:ComboBoxEditSettings.Items> 
      <dxe:ComboBoxEditItem IsSelected="True">AAA</dxe:ComboBoxEditItem> 
      <dxe:ComboBoxEditItem>BBB</dxe:ComboBoxEditItem> 
      <dxe:ComboBoxEditItem>CCC</dxe:ComboBoxEditItem> 
     </dxe:ComboBoxEditSettings.Items> 
    </dxe:ComboBoxEditSettings> 
</dxb:BarEditItem.EditSettings> 

我的C#代码:
[我发现了COUNTSTR正确的,所以我敢肯定,ComboBoxEdit和项目初始化并添加好的,但SelectedIndex仍然不设置索引..]
*我也不想用EditValue要设置的值,我需要使用整数(索引)进行设置。

private void Foo_LinkControlLoaded(object sender, 
    DevExpress.Xpf.Bars.BarItemLinkControlLoadedEventArgs e) 
{ 
    BarEditItemLink link = (BarEditItemLink)sender; 
    countStr = ((ComboBoxEdit)link.Editor).Items.Count.ToString(); 
    ((ComboBoxEdit)link.Editor).SelectedIndex = 2; 
} 

回答

2

编辑器设置中没有SelectedIndex或SelectedItem属性(例如ComboBoxEditSettings)。 但您可以通过编辑样式设置的ComboBoxEditSelectedIndex,的SelectedItem或的EditValue属性:

<dxb:BarEditItem x:Name="beiComboBox"> 
    <dxb:BarEditItem.EditStyle> 
     <Style TargetType="dxe:ComboBoxEdit"> 
      <Setter Property="SelectedIndex" Value="1"/> 
     </Style> 
    </dxb:BarEditItem.EditStyle> 
    <dxb:BarEditItem.EditSettings> 
     <dxe:ComboBoxEditSettings> 
      <dxe:ComboBoxEditSettings.Items> 
       <dxe:ComboBoxEditItem>AAA</dxe:ComboBoxEditItem> 
       <dxe:ComboBoxEditItem>BBB</dxe:ComboBoxEditItem> 
       <dxe:ComboBoxEditItem>CCC</dxe:ComboBoxEditItem> 
      </dxe:ComboBoxEditSettings.Items> 
     </dxe:ComboBoxEditSettings> 
    </dxb:BarEditItem.EditSettings> 
</dxb:BarEditItem> 

您还可以设置从代码隐藏一个ComboBoxEdit.SelectedIndex财产,如果你赶上Loaded事件:

<dxb:BarEditItem.EditStyle> 
    <Style TargetType="dxe:ComboBoxEdit"> 
     <EventSetter Event="Loaded" Handler="ComboBoxEdit_Loaded"/> 
    </Style> 
</dxb:BarEditItem.EditStyle> 

//... 
void ComboBoxEdit_Loaded(object sender, RoutedEventArgs e) { 
    ((ComboBoxEdit)sender).SelectedIndex = 1; 
} 
+0

感谢。你还有解决方案背后的代码吗?我不明白为什么我的C#代码不会设置SelectedIndex - 可能我不能通过强制转换来完成此操作? – KMC

+0

@KMC:我已经更新了我的答案。附:我不是来自devexpresss支持团队,但我不时地用他们的控件) – DmitryG

+0

有了这个(第一个)解决方案,EditValueChanged不会引发这个第一项。有没有解决方法? –