Как установить индекс в DevExpress ComboBoxEdit? - PullRequest
1 голос
/ 04 ноября 2011

Как "установить" SelectedIndex в DevExpress ComboBoxEdit?
Я пробовал как в XAML , так и в коде позади, но индекс не был установлен, он начинается с пустого элемента.

Мой 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 для установки значения, мне нужно использовать целое число ( Index ) для его установки.

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;
}

1 Ответ

2 голосов
/ 04 ноября 2011

В настройках редактора нет свойства SelectedIndex или SelectedItem (например, ComboBoxEditSettings).Но вы можете установить свойства SelectedIndex , SelectedItem или EditValue ComboBoxEdit с помощью стиля редактора:

<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 свойство из codebehind, если вы перехватываете событие 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...