I have a ViewModel which has a collection and a property representing the selected value in the collection. In my view this is shown in a ComboBox. When "filling" my ViewModel, the selected item is not shown in my view.
My ViewModel
public class DriverViewModel : MasterDataWithAddressViewModel<Driver>
{
public ObservableCollection<Vehicle> Vehicles
{
get { return _vehicles; }
set
{
if (_vehicles != value)
{
_vehicles = value;
RaisePropertyChanged("Vehicles");
}
}
}
public Vehicle SelectedVehicle
{
get { return PrimaryModel.Vehicle; }
set
{
if (PrimaryModel.Vehicle != value)
{
PrimaryModel.Vehicle = value;
RaisePropertyChanged("SelectedVehicle");
}
}
}
}
The setter of SelectedVehicle
is called correctly and so is RaisePropertyChanged("SelectedVehicle");
...
My ComboBox
<ComboBox DisplayMemberPath="Number"
ItemsSource="{Binding Vehicles, UpdateSourceTrigger=PropertyChanged}"
SelectedValue="{Binding SelectedVehicle, UpdateSourceTrigger=PropertyChanged}" />
I've also tried it that way:
<ComboBox DisplayMemberPath="Number"
ItemsSource="{Binding Vehicles, UpdateSourceTrigger=PropertyChanged}"
SelectedItem="{Binding SelectedVehicle, UpdateSourceTrigger=PropertyChanged}"
IsSynchronizedWithCurrentItem="True" />
Selecting a value in the ComboBox "manually" (via the view) works without problems. Doing it by "filling" the ViewModel in the code doesn't work.
Can anyone help ?