using MVVMCanvasRectangle.Model; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MVVMCanvasRectangle.ViewModel { internal class RectModelView : INotifyPropertyChanged { private int _count; public ObservableCollection RectItems { get; set; } public event PropertyChangedEventHandler? PropertyChanged; public int Count { get { return _count; } set { _count = value; this.RectItems.Clear(); for (int i = 0; i < _count; i++) { this.RectItems.Add(new RectItem { X = i * 40, Y = 10, Width = 30, Height = 30 }); } } } public RectModelView() { _count = 0; this.RectItems = new ObservableCollection(); } public void AddOne() { RectItem lastRect = this.RectItems.LastOrDefault(); if (lastRect == null) this.RectItems.Add(new RectItem() { X = 0, Y = 10, Width = 30, Height = 30 }); else this.RectItems.Add(new RectItem() { X = lastRect.X + 40, Y = 10, Width = 30, Height = 30 }); } } }