【发布时间】:2018-12-07 20:36:24
【问题描述】:
我有一个 list<Month> months,其中包含 12 个月份对象,其名称字符串包含月份名称(例如 januari),还有一个 list<Month> selectedMonths,我想将其添加到由带有复选框的用户,并在未选中该框时将其删除。
在 XAML 中我有:
<StackPanel>
<CheckBox IsChecked="{Binding monthCheck}" Content="Januari"/>
<CheckBox IsChecked="{Binding monthCheck}" Content="Februari"/>
[etc...]
<CheckBox IsChecked="{Binding monthCheck}" Content="November"/>
<CheckBox IsChecked="{Binding monthCheck}" Content="December"/>
</StackPanel>
现在在我的视图模型中我有:
private bool _monthCheck;
public bool monthCheck{
get{ return _monthCheck; }
set{
_monthCheck = value;
OnPropertyChanged("maandCheck");
}
现在,如果我点击任何一个复选框,所有 12 个复选框都会随着我点击的那个而改变(可以理解,它们都绑定到同一个 bool);我希望当我勾选一个框时,它会检查复选框的Content,并将适当的月份从months 添加到selectedMonths。
我该怎么做?
我可以只用monthCheck setter 中的代码来做到这一点吗?比如:
set{
_montcheck = value;
if(value){
somehow get Content
select month with name = content from months
selectedMonths.add(thatMonth)
only check the appropriate box
}
if(!value){
somehow get Content
select month with that name
selectedMonths.remove(thatMonth)
only uncheck the appropriate box
}
OnPropertyChanged("maandCheck");
}
不知道该怎么做。
【问题讨论】:
-
好吧,你只需要制作 12 个布尔值,就像你在这里做的一样