วิธีอัปเดต Observable Collection ด้วยข้อมูลที่เปลี่ยนแปลงตลอดเวลา

 public class LPMModel : NotifyPropertyChanged
{
    #region Fields

    private static int nextIndex, nextIndexL = 0;
    private int index;
    private int indexL;
    private bool status;
    private bool enable;
    public char[] WafPreSta;
    public char[] wmapLPM1 { get; set; }
    private readonly ObservableCollection<WaferModel> sloatWaferCollection;

    #endregion Fields

    

  
    public int Index { get => indexL; set => indexL = value; }

    public bool Status { get => status; set => status = value; }

    public bool Enable { get => enable; set => enable = value; }

    
    public ObservableCollection<WaferModel> SlotWaferCollection => sloatWaferCollection;

  

    
    public override string ToString()
    {
        return string.Format("LPM #{0}", Index);
    }

    
    public LPMModel()
    {
        Thread.Sleep(30000);
        indexL = ++nextIndexL;
        index = nextIndex++;
        sloatWaferCollection = new ObservableCollection<WaferModel>();
        while (wmapLPM1 != null)
        {
            for (int i = 25; i > 0; i--)
            {

                switch (wmapLPM1[i-1])
                {
                    case '1':
                        status = true;
                        break;

                    case '0':
                        status = false;
                        break;

                    default:
                        break;
                }

                //status = true;
                sloatWaferCollection.Add(new WaferModel(status, i, this));
                
            }
        }
        
       
    }
}
       public class WaferModel 
{

    public int Index { get; set; } public bool Status { get; set; } public bool Enable { get; set; }
}
public class LPMModel : INotifyPropertyChanged
{
    #region Fields

    private static int nextIndex, nextIndexL = 0;
    private int index;
    private int indexL;
    private bool status;
    private bool enable;
    public char[] WafPreSta;
    public char[] wmapLPM1 { get; set; }
    private readonly ObservableCollection<WaferModel> sloatWaferCollection;

    public event PropertyChangedEventHandler PropertyChanged;

    #endregion Fields




    public int Index { get => indexL; set => indexL = value; }

    public bool Status { get => status; set => status = value; }

    public bool Enable { get => enable; set => enable = value; }


    //public ObservableCollection<WaferModel> SlotWaferCollection = new();




    public override string ToString()
    {
        return string.Format("LPM #{0}", Index);
    }


    public LPMModel()
    {
        sloatWaferCollection = new ObservableCollection<WaferModel>();
    }
    public void runLPML()
    {
        Thread.Sleep(30);
        indexL = ++nextIndexL;
        index = nextIndex++;
        int count = 25;
        WaferModel wafer = new();
        while (wmapLPM1 != null)
        {
            for (int i = count; i > 0; i--)
            {

                switch (wmapLPM1[i - 1])
                {
                    case '1':
                        status = true;
                        break;

                    case '0':
                        status = false;
                        break;

                    default:
                        break;
                }

                //status = true;
                wafer.Status = status;
                wafer.Index = i;
                wafer.Enable = true;//false?
                sloatWaferCollection.Add(wafer);
                count -= 1;
                Console.WriteLine(sloatWaferCollection);

            }
        }
    }
}