2017-02-20 3 views
0

У меня есть приложение WPF и используйте UserControl как представление. Внутри этого UserControl есть DevExpress ComboBoxEdit.Как выбрать первый элемент в 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.

+1

Просто установите из конструктора ViewModel что-то вроде SelectedInspection = InspectionList.FirstOrDefault() – 3615

ответ

0

Разве вы не можете просто установить SelectedIndex свойство 0 в XAML разметке ?:

<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(); 

Вы можете явно не выбрать элемент, который не присутствует в Items коллекции ComboBox.

+0

Я пробовал SelectedIndex = "0" в XAML, но он не работает. – tesicg

+0

Укажите свойство источника SelectedInspection? – mm8

+0

Установить SelectedInspection на что и когда? – tesicg

Смежные вопросы