2011-11-04 78 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不會引發這個第一項。有沒有解決方法? –