Информация об изменениях

Сообщение Re[2]: Однопоточный типа мьютекс от 23.01.2026 14:03

Изменено 23.01.2026 14:06 Философ

Re[2]: Однопоточный типа мьютекс
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Определить понятие "источник изменения". Если им является парный контрол...


Очень плохая идея! Контрол не должен знать о существовании других контролов, в идеальном случае вообще не знать, ни при каких обстоятельствах Для последнего лучше всего заводить GUI-manager, который будет поставлять контролы и диалоги. Это уменьшает связность и позволяет реиспользовать контролы. Если у тебя один контрол прибит к другому, то править код сложно, использовать контролы в другом месте (напр. в другом проекте) тоже сложно.
Моя практика показала, что использование Sender — плохая идея. А вот надстройка над моделью — ViewModel — хорошая. Это стоит делать, даже если это не WPF, и MVVM для этого конкретного фрэйморка чужеродно. Задача ViewModel — адаптировать модель так, чтобы её мог отобразить и другим способом использовать контрол. Sender стоит использовать только для того, чтобы из него вытаскивать хэндл для ParentControl или ParentWindow: не стоит через него делать логику отображения.
Re[2]: Однопоточный типа мьютекс
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Определить понятие "источник изменения". Если им является парный контрол...


Очень плохая идея! Контрол не должен знать о существовании других контролов, в идеальном случае вообще не знать, ни при каких обстоятельствах Для последнего лучше всего заводить GUI-manager, который будет поставлять контролы и диалоги. Это уменьшает связность и позволяет реиспользовать контролы. Если у тебя один контрол прибит к другому, то править код сложно, использовать контролы в другом месте (напр. в другом проекте) тоже сложно.
Моя практика показала, что использование Sender — плохая идея. А вот надстройка над моделью — ViewModel — хорошая. Это стоит делать, даже если это не WPF, и MVVM для этого конкретного фрэйморка чужеродно. Задача ViewModel — адаптировать модель так, чтобы её мог отобразить и другим способом использовать контрол. Sender стоит использовать только для того, чтобы из него вытаскивать хэндл для ParentControl или ParentWindow: не стоит через него делать логику отображения. Использование INotifyPropertyChanged или INotifyCollectionChanged из ViewModel — тоже хорошая идея.