Ich muss die Dropdown-Box füllen, wenn das Dropdown-Menü geöffnet ist. Ich meine, ich klicke auf den Pfeil und die VM muss es ausfüllen und dann öffnen. Ich habe eine ObservableCollection von Strings, um die Combobox auszufüllen. Das MVM ist auch INotifyPropertyChanged.So füllen Sie die Combobox auf 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; }
}
Es passiert nichts.
Vielen Dank. Es funktioniert. Du hast meinen Tag gerettet. Vielen Dank))) – Bird75
@ Bird75 Most Welcome :-) – Vijay
Wie kann ich es machen, dass selbst ich dropdown die Liste geladen wird, aber damit die Conbobox nicht das erste Element auswählt. Ich meine, dass, ohne etwas von einem Benutzer zu wählen, der ausgewählte Gegenstand leer ist. – Bird75