public CardView(CardViewModel cardViewModel) { InitializeComponent(); _viewModel = cardViewModel ?? throw new ArgumentNullException(nameof(cardViewModel)); //источник данных Пациенты _bsPatients = new BindingSource(); _bsPatients.DataSource = _viewModel.Patients; //установка привязок SetBindings(); //когда данные загружаются отключаем привязки у дэйтпикеров _viewModel.DataLoading += (s, e) => ClearDatesBindings(); //когда данные загружены включаем привязки у дэйтпикеров _viewModel.DataLoaded += (s, e) => SetDatesBindings(); //кнопки справа вверху _buttonAddPatient.Click += (s, e) => _viewModel.ShowRegistrationView(); _buttonUpdatePatient.Click += (s, e) => _viewModel.ShowRegistrationView(_bsPatients.Current as Patient); _buttonRemovePatient.Click += (s, e) => _viewModel.RemovePatient(_bsPatients.Current as Patient); _buttonNextPatient.Click += ButtonNextPatient_Click; _buttonPrevPatient.Click += ButtonPrevPatient_Click; //радиокнопки выбора просмотра доп. записей _radioButtonNo.Click += RadioButtonAdditions_Click; _radioButtonHospitalizations.Click += RadioButtonAdditions_Click; _radioButtonExaminations.Click += RadioButtonAdditions_Click; _radioButtonObservations.Click += RadioButtonAdditions_Click; //кнопки перехода по доп.записям _buttonNextAddition.Click += (s, e) => _viewModel.NextAddition(); _buttonPrevAddition.Click += (s, e) => _viewModel.PrevAddition(); //форма активирована -> подгружаем данные о пациентах this.Activated += async(s, e) => await _viewModel.LoadDataAsync(); }