【发布时间】:2019-05-27 13:37:51
【问题描述】:
我不知道这是否可能,但我想将对象添加到可观察集合并稍后重用它们。
我在 wpf 中有这个:
<CheckBox Margin="0,9,0,5" IsChecked="{Binding Prise1.Monday, Mode=TwoWay}"/>
<CheckBox Margin="0,10,0,5" IsChecked="{Binding Prise2.Monday, Mode=TwoWay}"/>
<CheckBox Margin="0,10,0,5" IsChecked="{Binding Prise3.Monday, Mode=TwoWay}"/>
<CheckBox Margin="0,9,0,0" IsChecked="{Binding Durée.Monday, Mode=TwoWay}"/>
一周中的所有日子。 类周值:
private bool _Monday;
public bool Monday
{
get
{
return _Monday;
}
set
{
_Monday = value;
RaisePropertyChanged(nameof(Monday));
}
}
private bool _Tuesday;
public bool Tuesday
{
get
{
return _Tuesday;
}
set
{
_Tuesday = value;
RaisePropertyChanged(nameof(Tuesday));
}
}
private bool _Wednesday;
public bool Wednesday
{
get
{
return _Wednesday;
}
set
{
_Wednesday = value;
RaisePropertyChanged(nameof(Wednesday));
}
}
private bool _Thursday;
public bool Thursday
{
get
{
return _Thursday;
}
set
{
_Thursday = value;
RaisePropertyChanged(nameof(Thursday));
}
}
private bool _Friday;
public bool Friday
{
get
{
return _Friday;
}
set
{
_Friday = value;
RaisePropertyChanged(nameof(Friday));
}
}
private bool _Saturday;
public bool Saturday
{
get
{
return _Saturday;
}
set
{
_Saturday = value;
RaisePropertyChanged(nameof(Saturday));
}
}
private bool _Sunday;
public bool Sunday
{
get
{
return _Sunday;
}
set
{
_Sunday = value;
RaisePropertyChanged(nameof(Sunday));
}
}
}
我想做这样的事情:
public ObservableCollection<WeekValues> allPrises = new ObservableCollection<WeekValues>();
Prise1 = new WeekValues();
Prise2 = new WeekValues();
Prise3 = new WeekValues();
Durée = new WeekValues();
allPrises.Add(Prise1);
allPrises.Add(Prise2);
allPrises.Add(Prise3);
allPrises.Add(Durée);
并使用类似的方法:
MyMethod(allPrises)
{
foreach(var X in allPrises)
{
if(Prise1.Monday) ...do something
if(Prise2.Monday) ... do something else
}
这清楚吗? 这就是我的想法,我想知道如何进行,因为当我进行 foreach 时,我只会得到真/假,而没有“Prise1”或“Prise2”。 你知道如何解决这个问题吗? 提前谢谢你
【问题讨论】:
-
哎呀,我更正了
-
您正在遍历所有 4 个
WeekValues,不是吗?所以X是第一次迭代中的 Prise1,依此类推。如果你从不改变元素的顺序,if (Prise2.Monday)可以写成if (allPrises[1].Monday)。 -
您应该在 foreach 中使用“x”,否则使用 foreach 有什么意义?
-
谢谢mm8,现在可以了。谢谢你
标签: c# wpf mvvm observablecollection