DevCrm 01 - Работа с клиентами, почему они не редактируются?

На самом деле, когда я нажал «Добавить» в начале вообще ничего не произошло, кнопка просто не нажималась.

DevCrm 01 - Работа с клиентами, почему они не редактируются?

И тут с одной стороны всё просто, но совсем не просто. Когда по всей логике понимаешь, что всё работает правильно и должно нажиматься, а оно не нажимается нифига. Начинаю думать, я вошел, авторизовался, значит IsAuthenticated = false должно поменяться на IsAuthenticated = true, точнее оно поменялось, но не везде.

Так как кнопка должна включиться, но этого не произошло.Убрал с этого поля аутентификацию, но тогда до нажатия кнопки уже все поля активные, тоже не то.

Включаю логику событий:

1 Форма редактирования — неактивна.

2 Кнопка «Новый клиент» — активна.

3 При нажатии «Новый клиент» — форма становится активной, поля доступны для ввода.

4 При выборе клиента в таблице — форма становится активной с данными клиента.

5 После сохранения или сброса — форма блокируется.

В методе private void ShowLogin() по умолчанию включаю — IsEditMode = false;. Ну вроде всё логично, до после входа нельзя редактировать клиента, пока на кнопочку не тыркнешь, отлично.Вот теперь неактивно, но другая беда, после нажатия кнопки «Новый клиент» активными поля не становятся.

Да чтож такое.Нашел:<Button Content=" Новый клиент" Command="{Binding AddCommand}" Margin="5" Padding="12,6" Style="{StaticResource AccentButton}" Click="Button_Click"/>Надо убирать Click="Button_Click", наверно случайно добавил.

Дальше поехали.Ничего не понимаю, от слова совсем — вот при выборе клиентов становятся активными поля, а при нажатии новый клиент — нет! — мистика.Добавляю проверку в метод — MessageBox.Show("AddClient вызван!");. Погнали — запускаю, нажимаю, всплывает окно с текстом «AddClient вызван!», поля не активны. Всё приплыли.Надо искать в другом месте. Следом после IsEditMode = true добавляю MessageBox.Show($"IsEditMode = {IsEditMode}"). Ну где-то должна проявиться эта чертовщина! Стартуем — IsEditMode = true.А уже в то время MainViewModel большим там и клиенты, и таски, и юзеры, и авторизация, ну да ладно об это чуть позже. Для редактирования формы был сделан метод OpenEditForm.csharpprivate void OpenEditForm(Client? client = null){ if (!IsAuthenticated) return; if (client == null) { IsAuthenticated = false; EditableClient = new Client { CreatedAt = DateTime.Now, Status = "Lead", AssignedUserId = _userService.GetCurrentUser()?.Id }; SelectedClient = null; Interactions = new ObservableCollection<Interaction>(); Tasks = new ObservableCollection<ClientTask>(); Notes = new ObservableCollection<Note>(); } else { EditableClient = new Client { Id = client.Id, Name = client.Name, Phone = client.Phone, Email = client.Email, Status = client.Status, Notes = client.Notes, Company = client.Company, Position = client.Position, Address = client.Address, Source = client.Source, CreatedAt = client.CreatedAt, LastContact = client.LastContact, Birthday = client.Birthday, AssignedUserId = client.AssignedUserId, Tags = client.Tags }; SelectedClient = client; LoadClientDetails(client.Id); } //

... и так далее}

Зачем я тогда это сделал — фиг знает, но почему-то строка IsAuthenticated = false; там была, в упор не могу вспомнить для каких целей она была сделана, но факт остаётся фактом!

Вот такие вот пироги! Ну, я думаю, вы поняли, убрал строку - заработало!Вывод: не всегда проблема аутентификации лежит в аутентификации, а точнее в самой аутентификации.)))

Но на этом всё не закончилось, а скорее только началось!

1