public void Reload(IEnumerable affectedRows)
        {
            var rows = affectedRows ?? BindableSeats.ToList();

            foreach (SeatBox t in rows)
            {
                if (t.IsNot <SeatBox>())
                {
                    break;
                }
                var index = _bindableSeats.IndexOf(t);
                if (index == -1)
                {
                    continue;
                }

                _bindableSeats[index] = t;
            }
            var reselectSeat = RetainCurrentSelectedSeat();

            this.QuietlyReload(ref _bindableSeats, "BindableSeats");
            reselectSeat.Invoke();
        }
        private Action RetainCurrentSelectedSeat()
        {
            var selectedIndex = BindableSeats.IndexOf(SelectedSeat);

            return(() => { SelectedSeat = selectedIndex == -1 ? null : _bindableSeats[selectedIndex] as SeatBox; });
        }