我在项目中使用此控件,无法获取属性绑定。
我的xml代码:
<controls:ExtendedPicker x:Name="myPicker" ItemsSource="{Binding ListaLugaresTrabajo}" DisplayProperty="NombreLugar" SelectedItem="{Binding SelectedLugarTrabajo}" />
我的视图模型代码:
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);
}
}
我的模型代码(也使用 sqlite):
[Table ("LugaresDeTrabajo")]
public class LugarDeTrabajo
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
[Unique]
public string NombreLugar { get; set; }
}
ItemsSource 和 DisplayProperty 工作正常,但 SelectedItem 始终为空。
我使用 MvvmCross 框架,在应用程序的其余部分工作正常。
这是一个共享项目,我正在试用 Android 版本。
那可能会发生吗?
解决方案:将 SelectedItem 属性设置为双向绑定模式。
正确的 Xaml 代码:
<controls:ExtendedPicker x:Name="myPicker" ItemsSource="{Binding ListaLugaresTrabajo}" DisplayProperty="NombreLugar" SelectedItem="{Binding SelectedLugarTrabajo, Mode=TwoWay}" />