繁体   English   中英

如何从可观察的集合中获取对象?

[英]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}"/>

对于一周中的所有日子。 上课周值:

    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 因此,在第一次迭代中XPrise1 ,依此类推。

if (Prise2.Monday)您从不更改元素的顺序,则可以将if (Prise2.Monday)写为if (allPrises[1].Monday)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM