Laden...

ComboBoxItem automatisch auswählen beim Öffnen

Erstellt von Mammut vor 10 Jahren Letzter Beitrag vor 10 Jahren 1.130 Views
M
Mammut Themenstarter:in
13 Beiträge seit 2013
vor 10 Jahren
ComboBoxItem automatisch auswählen beim Öffnen

Hallo Zusammen!

Vorhaben
Ich möchte gerne eine View öffnen und dann einen entsprechenden Kunde in einer ComboBox automatisch ausgewählt haben.

Problem
Der Kunde wird nicht ausgewählt. Die ComboBox ist leer.

Mein Code

ViewModel:


//Im Konstruktor
using (var context = new DatabaseEntities()) {
                ListKunden = new List<Kunden>(context.Kunden.ToList<Kunden>());
                SelectedKunde = context.Kunden.First(x => x.Id == Termin.Kunden_ID);
}

//Felder
public List<Kunden> ListKunden { get; set; }
public Kunden SelectedKunde { get; set; }

View:


<ComboBox Grid.Row="1" Grid.Column="1" MinWidth="100" 
                  ItemsSource="{Binding ListKunden}" 
                  SelectedItem="{Binding SelectedKunde}">
            <ComboBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <TextBlock Text="{Binding Vorname}" />
                        <TextBlock Text=" " />
                        <TextBlock Text="{Binding Nachname}" />
                    </StackPanel>
                </DataTemplate>
            </ComboBox.ItemTemplate>

        </ComboBox>

Ich hoffe ihr könnt mir weiterhelfen 😃

Gruß
Mammut

193 Beiträge seit 2005
vor 10 Jahren

Hi Mammut,

soweit ich weiß, musst du noch ein PropertyChanged senden.

Dazu musst du zunächst dein Window oder Usercontrol von INotifiyPropertyChanged ableiten.
Dann musst du ein Event "PropertyChangedEventHandler" erstellen.

public event PropertyChangedEventHandler PropertyChanged;

Nachdem dann SelectedKunde und die Liste geändert wurden, rufst du PropertyChanged auf um dem Control mitzuteilen, dass es die Bindings bitte aktualisieren soll.

if (PropertyChanged != null)
{
     PropertyChanged(this, new PropertyChangedEventArgs("ListKunden"));
     PropertyChanged(this, new PropertyChangedEventArgs("SelectedKunde"));
}

Visit me @ www.beremote.net