0

I have an Observable collection containing some properties. My requirement is i want to iterate through observable collection properties and store/add properties from budgetReportYear1 to budgetReportYear30 in a separate list (double type).

Model:-
namespace RedCube45Mvvm.Model
 {
    public class RangeData : INotifyPropertyChanged
{

    #region Constructor

    public RangeData(MainWindowViewModel viewModel)
    {

        m_ViewModel = viewModel;

    }

    #endregion

    #region Fields

    private MainWindowViewModel m_ViewModel;

    private string name;
    private int fleet_size;
    private double availability;
    #endregion

    #region Properties

    public string Name 
    {
        get { return name; }
        set
        {
            name = value;
        }
    }


    public double Availability
    {
        get { return availability; }
        set
        {
            availability = value;
            Onchanged("Availability");
            var u = new Operations.Process.Updater(m_ViewModel, this,                          "avail");
        }
    }

    public int FleetSize
    {
        get { return fleet_size; }
        set
        {
            fleet_size = value;
            Onchanged("FleetSize");
            var u = new Operations.Process.Updater(m_ViewModel, this, "fleetSize");
        }
    }

    #endregion

    #region Budget Report Year
    private double _budgetReportYear1 = 1;
    private double _budgetReportYear2 = 1;
    private double _budgetReportYear3 = 1;
    private double _budgetReportYear4 = 1;
    private double _budgetReportYear5 = 1;
    private double _budgetReportYear6 = 1;
    private double _budgetReportYear7 = 1;
    private double _budgetReportYear8 = 1;
    private double _budgetReportYear9 = 1;
    private double _budgetReportYear10 = 1;
    private double _budgetReportYear11 = 1;
    private double _budgetReportYear12 = 1;
    private double _budgetReportYear13 = 1;
    private double _budgetReportYear14 = 1;
    private double _budgetReportYear15 = 1;
    private double _budgetReportYear16 = 1;
    private double _budgetReportYear17 = 1;
    private double _budgetReportYear18 = 1;
    private double _budgetReportYear19 = 1;
    private double _budgetReportYear20 = 1;
    private double _budgetReportYear21 = 1;
    private double _budgetReportYear22 = 1;
    private double _budgetReportYear23 = 1;
    private double _budgetReportYear24 = 1;
    private double _budgetReportYear25 = 1;
    private double _budgetReportYear26 = 1;
    private double _budgetReportYear27 = 1;
    private double _budgetReportYear28 = 1;
    private double _budgetReportYear29 = 1;
    private double _budgetReportYear30 = 1;

    public bool Loaded { get; set; }

    public double budgetReportYear1
    {
        get { return _budgetReportYear1; }
        set
        {
            _budgetReportYear1 = value;
            Onchanged("budgetReportYear1");
        }
    }


    public double budgetReportYear2
    {
        get { return _budgetReportYear2; }
        set
        {
            _budgetReportYear2 = value;
            Onchanged("budgetReportYear2");
        }
    }

    public double budgetReportYear3
    {
        get { return _budgetReportYear3; }
        set
        {
            _budgetReportYear3 = value;
            Onchanged("budgetReportYear3");
        }
    }

    public double budgetReportYear4
    {
        get { return _budgetReportYear4; }
        set
        {
            _budgetReportYear4 = value;
            Onchanged("budgetReportYear4");
        }
    }

    public double budgetReportYear5
    {
        get { return _budgetReportYear5; }
        set
        {
            _budgetReportYear5 = value;
            Onchanged("budgetReportYear5");
        }
    }

    public double budgetReportYear6
    {
        get { return _budgetReportYear6; }
        set
        {
            _budgetReportYear6 = value;
            Onchanged("budgetReportYear6");
        }
    }

    public double budgetReportYear7
    {
        get { return _budgetReportYear7; }
        set
        {
            _budgetReportYear7 = value;
            Onchanged("budgetReportYear7");
        }
    }

    public double budgetReportYear8
    {
        get { return _budgetReportYear8; }
        set
        {
            _budgetReportYear8 = value;
            Onchanged("budgetReportYear8");
        }
    }

    public double budgetReportYear9
    {
        get { return _budgetReportYear9; }
        set
        {
            _budgetReportYear9 = value;
            Onchanged("budgetReportYear9");
        }
    }

    public double budgetReportYear10
    {
        get { return _budgetReportYear10; }
        set
        {
            if (value < 0.01 || value > 99)
            {
                throw new ArgumentException("Value must be within 0.01 & 99");
            }
            _budgetReportYear10 = value;
            Onchanged("budgetReportYear10");
        }
    }

    public double budgetReportYear11
    {
        get { return _budgetReportYear11; }
        set
        {
            _budgetReportYear11 = value;
            Onchanged("budgetReportYear11");

        }
    }

    public double budgetReportYear12
    {
        get { return _budgetReportYear12; }
        set
        {
            _budgetReportYear12 = value;
            Onchanged("budgetReportYear12");

        }
    }

    public double budgetReportYear13
    {
        get { return _budgetReportYear13; }
        set
        {
            _budgetReportYear13 = value;
            Onchanged("budgetReportYear13");
        }
    }

    public double budgetReportYear14
    {
        get { return _budgetReportYear14; }
        set
        {
            _budgetReportYear14 = value;
            Onchanged("budgetReportYear14");
        }
    }

    public double budgetReportYear15
    {
        get { return _budgetReportYear15; }
        set
        {
            _budgetReportYear15 = value;
            Onchanged("budgetReportYear15");
        }
    }

    public double budgetReportYear16
    {
        get { return _budgetReportYear16; }
        set
        {
            _budgetReportYear16 = value;
            Onchanged("budgetReportYear16");
        }
    }

    public double budgetReportYear17
    {
        get { return _budgetReportYear17; }
        set
        {
            _budgetReportYear17 = value;
            Onchanged("budgetReportYear17");
        }
    }

    public double budgetReportYear18
    {
        get { return _budgetReportYear18; }
        set
        {
            _budgetReportYear18 = value;
            Onchanged("budgetReportYear18");
        }
    }

    public double budgetReportYear19
    {
        get { return _budgetReportYear19; }
        set
        {
            _budgetReportYear19 = value;
            Onchanged("budgetReportYear19");
        }
    }

    public double budgetReportYear20
    {
        get { return _budgetReportYear20; }
        set
        {
            _budgetReportYear20 = value;
            Onchanged("budgetReportYear20");
        }
    }

    public double budgetReportYear21
    {
        get { return _budgetReportYear21; }
        set
        {
            _budgetReportYear21 = value;
            Onchanged("budgetReportYear21");

        }
    }

    public double budgetReportYear22
    {
        get { return _budgetReportYear22; }
        set
        {
            _budgetReportYear22 = value;
            Onchanged("budgetReportYear22");
        }
    }

    public double budgetReportYear23
    {
        get { return _budgetReportYear23; }
        set
        {
            _budgetReportYear23 = value;
            Onchanged("budgetReportYear23");
        }
    }

    public double budgetReportYear24
    {
        get { return _budgetReportYear24; }
        set
        {
            _budgetReportYear24 = value;
            Onchanged("budgetReportYear24");
        }
    }

    public double budgetReportYear25
    {
        get { return _budgetReportYear25; }
        set
        {
            _budgetReportYear25 = value;
            Onchanged("budgetReportYear25");
        }
    }

    public double budgetReportYear26
    {
        get { return _budgetReportYear26; }
        set
        {
            _budgetReportYear26 = value;
            Onchanged("budgetReportYear26");
        }
    }

    public double budgetReportYear27
    {
        get { return _budgetReportYear27; }
        set
        {
            _budgetReportYear27 = value;
            Onchanged("budgetReportYear27");
        }
    }

    public double budgetReportYear28
    {
        get { return _budgetReportYear28; }
        set
        {
            _budgetReportYear28 = value;
            Onchanged("budgetReportYear28");
        }
    }

    public double budgetReportYear29
    {
        get { return _budgetReportYear29; }
        set
        {
            _budgetReportYear29 = value;
            Onchanged("budgetReportYear29");
        }
    }

    public double budgetReportYear30
    {
        get { return _budgetReportYear30; }
        set
        {
            _budgetReportYear30 = value;
            Onchanged("budgetReportYear30");
        }
    }

    public string Error
    {

        get { throw new NotImplementedException(); }

    }     

    #endregion

    #region Event Handler

    public event PropertyChangedEventHandler PropertyChanged;
    public void Onchanged(string name)
    {
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs(name));

    }

       #endregion     
  }   
}

View Model:-

 public ObservableCollection<Model.RangeData> RangeData
  {
      get { return range_data; }

      set {
        range_data = value;
        base.RaisePropertyChangedEvent("RangeData");
      }
   }
Ram
  • 21
  • 3
  • 2
    maybe you shouldn't have "properties from budgetReportYear1 to budgetReportYear30" in the first place? a collection-type property or an indexer seems much better solution – ASh Jul 22 '16 at 11:12
  • i can not change this time. therefore,i am looking for solution of this .. – Ram Jul 22 '16 at 11:36
  • well, in this case you can obtain property values using Reflection. [tag:system.reflection] – ASh Jul 22 '16 at 11:40
  • how can i use reflection here. could you please add the logic for given scenario. – Ram Jul 22 '16 at 11:48
  • there are many resources which shows how to do that: http://stackoverflow.com/questions/10338018/how-to-get-a-property-value-using-reflection, http://stackoverflow.com/questions/1196991/get-property-value-from-string-using-reflection-in-c-sharp, etc – ASh Jul 22 '16 at 11:50
  • Thanks but this solution also doesnt solve my purpose. will have to look for another way – Ram Jul 22 '16 at 12:58

0 Answers0