I'm using this control in a project and can not get the property binding.
My xaml code:
<controls:ExtendedPicker x:Name="myPicker" ItemsSource="{Binding ListaLugaresTrabajo}" DisplayProperty="NombreLugar" SelectedItem="{Binding SelectedLugarTrabajo}" />
My ViewModel code:
private ObservableCollection<LugarDeTrabajo> _listaLugaresTrabajo;
public ObservableCollection<LugarDeTrabajo> ListaLugaresTrabajo {
get {
return _listaLugaresTrabajo;
}
set {
_listaLugaresTrabajo = value;
RaisePropertyChanged (() => ListaLugaresTrabajo);
}
}
private LugarDeTrabajo _selectedLugarTrabajo;
public LugarDeTrabajo SelectedLugarTrabajo {
get {
return _selectedLugarTrabajo;
}
set {
_selectedLugarTrabajo = value;
RaisePropertyChanged (() => SelectedLugarTrabajo);
}
}
My model code (also uses sqlite):
[Table ("LugaresDeTrabajo")]
public class LugarDeTrabajo
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
[Unique]
public string NombreLugar { get; set; }
}
ItemsSource and DisplayProperty works fine but SelectedItem is always null.
I use MvvmCross framework, in the rest of the application works correctly.
It is a shared project and I am trying out the Android version.
That could be happening?
Solution: Set SelectedItem Property to TwoWay binding mode.
Correct Xaml code:
<controls:ExtendedPicker x:Name="myPicker" ItemsSource="{Binding ListaLugaresTrabajo}" DisplayProperty="NombreLugar" SelectedItem="{Binding SelectedLugarTrabajo, Mode=TwoWay}" />