0

我有 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 构造函数中的代码之后。

4

1 回答 1

0

您不能SelectedIndex在 XAML 标记中将属性设置为 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();

您显然不能选择不存在ItemsComboBox.

于 2017-02-20T13:07:45.960 回答