如何 select DevExpress ComboBoxEdit 中的第一项?

How to select first item in DevExpress ComboBoxEdit?

我有 WPF 应用程序并使用 UserControl 作为视图。在那个 UserControl 里面有 DevExpress ComboBoxEdit。

<UserControl ... 
             xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <dxe:ComboBoxEdit Name="ComboBoxInspectionList" Grid.Row="0" Grid.Column="0" ItemsSource="{Binding InspectionList}" SelectedItem="{Binding SelectedInspection}" IsTextEditable="False"/>
    </Grid>
</UserControl>

ComboBox 是数据绑定的。我试过这个:

public partial class InspectionList : UserControl
{
    public InspectionList()
    {
        InitializeComponent();

        if (ComboBoxInspectionList.Items.Count > 0)
        {
            ComboBoxInspectionList.SelectedIndex = 0;
        }
    }
}

但是,数据绑定发生在 UserControl 的构造函数中的代码执行之后。

你不能在 XAML 标记中将 SelectedIndex 属性 设置为 0 吗?:

<dxe:ComboBoxEdit Name="ComboBoxInspectionList" SelectedIndex="0" Grid.Row="0" Grid.Column="0" ItemsSource="{Binding InspectionList}" SelectedItem="{Binding SelectedInspection}" IsTextEditable="False"/>

MVVM 的做法是将 SelectedInspection 属性 设置为视图模型中 InspectionList 中实际存在的对象,如@3615 所建议:

SelectedInspection = InspectionList.FirstOrDefault();

您显然不能 select ComboBoxItems 集合中不存在的项目。