【发布时间】:2016-06-08 13:48:08
【问题描述】:
所以我一直想将 Xamarin.Forms 中两个选择器的项目绑定到我的 ViewModel。我主要将绑定用于文本字段,我只写如下内容:
<Label Text="{Binding CurrentDate}" />
只需设置绑定上下文,在视图模型中定义一个属性
public System.DateTime CurrentDate{
get { return currentDate; }
set { currentDate = value; PropertyChanged(this, new PropertyChangedEventArgs("CurrentDate")); }
}
我已完成绑定。现在我有两个选择器。选择器代表地图/字典。词典>。 "A" 映射到 {"1","2"},"B" 映射到 {"4","5"}。第一个选择器应显示“A”和“B”作为选项。第二个应该显示与第一个选择器中所选值相关联的值。
所以有两个问题。 1)如何绑定选择器? 2) 如何绑定具有依赖于另一个选择器选择的数据的选择器?
我试过了
<Picker Items="{Binding ItemsA}"></Picker>
具有匹配的属性
public List<string> ItemsA
{
get { return itemsA;}
set { itemsA = value;PropertyChanged(this, new PropertyChangedEventArgs("ItemsA")); }
}
我在这里错过了什么吗?帮助将不胜感激。
【问题讨论】:
-
您绑定到列表的选定项目,而不是列表本身。
-
所以你不会尝试绑定 Picker 中呈现的数据?这可能会在模型运行时更新,并应反映在视图中。你如何填充列表?考虑到这些数据可能会在运行时发生变化。 @DanyDaKur
-
简单地以易于访问的形式排列您的数据 - 我建议将其保存在 Dictionary
> 中。将第一个列表绑定到值 1,并根据选择 - 将 Source 从 Dictionary 上传到选择器 2。 @why_vincent -
我当前的结构是 Dictionary
> 但问题是如何进行绑定。另一张海报说,如果不引入新的 Picker,就无法做到这一点。问题是“如何将这些数据绑定到 Picker?”。你的答案只是“绑定”。我是不是误会了什么? -
看起来我误解了你需要做什么——我同意其他海报——你需要第二个选择器