Exemplo n.º 1
0
        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();
        }