2017-01-06 11 views
0

Я должен заполнить раскрывающийся список, когда раскрывающийся список открыт. Я имею в виду, я нажимаю на стрелку, и виртуальная машина должна заполнить ее, а затем Открыть. У меня есть ObservableCollection строк для заполнения combobox. MVM также является INotifyPropertyChanged.Как заполнить combobox на DropDownOpened

<ComboBox x:Name="ServersBox" Grid.Row="0" Grid.Column="1" Height="23" IsEditable="True" IsSynchronizedWithCurrentItem="True" IsTextSearchEnabled="True" 
     IsTextSearchCaseSensitive="False" StaysOpenOnEdit="True" ItemsSource="{Binding AvailableSqlServer}" 
     SelectedItem="{Binding SelectedSqlServer}" Text="{Binding newServer, UpdateSourceTrigger=LostFocus, Mode=TwoWay}" Width="261"> 
    <i:Interaction.Triggers> 
     <i:EventTrigger EventName="DropDownOpened" SourceObject="{Binding ElementName=ServersBox}"> 
      <i:InvokeCommandAction Command="{Binding OnDropDownOpened}" /> 
     </i:EventTrigger> 
    </i:Interaction.Triggers> 
</ComboBox> 


public MigratorSqlViewModel(Migrator _m) 
{ 
    _setdropDownCommand = new RelayCommand<object>(OnDropDownOpened); 
} 
private RelayCommand<object> _setdropDownCommand; 
public RelayCommand<object> SetdropDownCommand 
{ 
    get {return _setdropDownCommand; } 
    set { _setdropDownCommand = value; } 
} 

public void OnDropDownOpened(object obj) 
{ 

    AvailableSqlServer = _Migrator.getServer(); 

} 

public ObservableCollection<string> AvailableSqlServer 
{ 
    set 
    { 
     this._availableSqlServer = value; 
     _Migrator.AvailableSqlServer = _availableSqlServer; 
     OnPropertyChanged("AvailableSqlServer"); 
    } 
    get { return _availableSqlServer; } 
} 

Этого не происходит.

ответ

2

В вашем коде вы укажете имя SetdropDownCommand, но вы связали OnDropDownOpened. Поэтому, пожалуйста, скопируйте команду правильно следующим образом.

<i:InvokeCommandAction Command="{Binding SetdropDownCommand}" /> 
+0

Спасибо. Это работает. Ты спас свой день. Большое спасибо))) – Bird75

+0

@ Bird75 Most Welcome :-) – Vijay

+0

Как я могу сделать так, что даже я выпадаю список List, но так, что conbobox не выбирает первый элемент. Я имею в виду, что, не выбирая что-то пользователем, выбранный элемент пуст. – Bird75