如何从可观察集合中获取对象?
how to get the objects from an observable collection?
我不知道这是否可行,但我想将对象添加到可观察集合中并在以后重用它们。
我在 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}"/>
一周中的所有日子。
Class 周值:
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 时,我只会得到 true/fals,而没有 "Prise1" 或 "Prise2"。
你知道如何解决这个问题吗?
提前谢谢你
您正在遍历全部 4 WeekValues
。所以 X
在第一次迭代中是 Prise1
等等。
if (Prise2.Monday)
可以写成 if (allPrises[1].Monday)
如果你从不改变元素的顺序。
我不知道这是否可行,但我想将对象添加到可观察集合中并在以后重用它们。
我在 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}"/>
一周中的所有日子。 Class 周值:
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 时,我只会得到 true/fals,而没有 "Prise1" 或 "Prise2"。 你知道如何解决这个问题吗? 提前谢谢你
您正在遍历全部 4 WeekValues
。所以 X
在第一次迭代中是 Prise1
等等。
if (Prise2.Monday)
可以写成 if (allPrises[1].Monday)
如果你从不改变元素的顺序。