gpt4 book ai didi

xaml - Xlabs ExtendedPicker SelectedItem 属性未绑定(bind)

转载 作者:行者123 更新时间:2023-12-03 10:22:38 25 4
gpt4 key购买 nike

我在项目中使用此控件,无法获取属性绑定(bind)。

我的xml代码:

   <controls:ExtendedPicker x:Name="myPicker" ItemsSource="{Binding ListaLugaresTrabajo}" DisplayProperty="NombreLugar" SelectedItem="{Binding SelectedLugarTrabajo}" />

我的 View 模型代码:
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 属性设置为双向绑定(bind)模式。


正确的 Xaml 代码:
<controls:ExtendedPicker x:Name="myPicker" ItemsSource="{Binding ListaLugaresTrabajo}" DisplayProperty="NombreLugar" SelectedItem="{Binding SelectedLugarTrabajo, Mode=TwoWay}" />

最佳答案

根据ExtendedPicker source code SelectedItem bindable 属性的默认绑定(bind)模式设置为 OneWay .这意味着 ViewModel 的变化会反射(reflect)在 View 中,而不是相反的方向。

如果您需要将更改从 ViewModel 传播到 View,反之亦然,请设置 SelectedItem属性(property)以下列方式:

SelectedItem="{Binding SelectedLugarTrabajo, Mode=TwoWay}" 

如果您只想将更改从 View 传播到 ViewModel 集 SelectedItem通过以下方式:
SelectedItem="{Binding SelectedLugarTrabajo, Mode=OneWayToSource}" 

关于xaml - Xlabs ExtendedPicker SelectedItem 属性未绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35969548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com