我有一个多次切换(一周中的几天),我想将它绑定到列表特定的索引,如星期六=> mylist [0],星期日mylist [1] 现在,当我试图获得价值时,它会返回null!
我的ViewModel
private List<bool> _days;
public List<bool> Days
{
get => _days;
set
{
if (Equals(value, _days)) return;
_days = value;
OnPropertyChanged();
}
}
我的观点
<Switch IsToggled="{Binding Days[0]}" Grid.Row="4" Grid.Column="0"
Scale="1.5" x:Name="SaturdaySwitch"></Switch>
<Switch IsToggled="{Binding Days[1]}" Grid.Row="5" Grid.Column="0"
Scale="1.5" x:Name="SundaySwitch"></Switch>
答案 0 :(得分:1)
为了向您展示如何在代码中,我为您创建了这个快速而肮脏的示例,可以在此处找到:https://github.com/jfversluis/FixedArraySample
在ViewModel(这里名为PageModel)中,我定义了一个用7个值初始化的List。
public List<bool> Days { get; set; } = new List<bool>
{
false,
false,
true,
false,
false,
false,
true
};
然后在页面中,我这样绑定它:
<StackLayout Orientation="Horizontal">
<Label Text="Monday" />
<Switch IsToggled="{Binding Days[0]}" />
</StackLayout>
要在切换开关时在列表中重新设置值,您可能还想添加双向数据绑定,例如:<Switch IsToggled="{Binding Days[0], Mode=TwoWay}" />
。
现在,相应的Days
列表中的值会更新,您可以在ViewModel中访问它们。